Add support for yang-ext extensions 97/95397/4
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 1 Mar 2021 15:03:56 +0000 (16:03 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 2 Mar 2021 10:20:49 +0000 (11:20 +0100)
MD-SAL is using these extension to assign an identifier to generated
augmentations. Since we stopped generating extensions which do not
have an explicit support, we need to add the supports.

JIRA: YANGTOOLS-1196
Change-Id: Ic0f02aa9e16f3b46efc755450833163b5c02c87a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
27 files changed:
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/AugmentIdentifierEffectiveStatement.java [new file with mode: 0644]
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/AugmentIdentifierStatement.java [new file with mode: 0644]
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextInstanceEffectiveStatement.java [new file with mode: 0644]
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextInstanceStatement.java [new file with mode: 0644]
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextReferenceEffectiveStatement.java [new file with mode: 0644]
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextReferenceStatement.java [new file with mode: 0644]
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/InstanceTargetEffectiveStatement.java [new file with mode: 0644]
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/InstanceTargetStatement.java [new file with mode: 0644]
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/OpenDaylightExtensionsStatements.java
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/RpcContextReferenceEffectiveStatement.java [new file with mode: 0644]
yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/RpcContextReferenceStatement.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AugmentIdentifierEffectiveStatementImpl.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AugmentIdentifierStatementImpl.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AugmentIdentifierStatementSupport.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextInstanceEffectiveStatementImpl.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextInstanceStatementImpl.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextInstanceStatementSupport.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextReferenceEffectiveStatementImpl.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextReferenceStatementImpl.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextReferenceStatementSupport.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetEffectiveStatementImpl.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetStatementImpl.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetStatementSupport.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/RpcContextReferenceEffectiveStatementImpl.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/RpcContextReferenceStatementImpl.java [new file with mode: 0644]
yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/RpcContextReferenceStatementSupport.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/DefaultReactors.java

diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/AugmentIdentifierEffectiveStatement.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/AugmentIdentifierEffectiveStatement.java
new file mode 100644 (file)
index 0000000..2c47539
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * 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.model.api;
+
+import com.google.common.annotations.Beta;
+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> {
+    @Override
+    default StatementDefinition statementDefinition() {
+        return OpenDaylightExtensionsStatements.AUGMENT_IDENTIFIER;
+    }
+}
diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/AugmentIdentifierStatement.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/AugmentIdentifierStatement.java
new file mode 100644 (file)
index 0000000..a55aa36
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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.model.api;
+
+import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
+
+@Beta
+public interface AugmentIdentifierStatement extends UnknownStatement<String> {
+    @Override
+    default StatementDefinition statementDefinition() {
+        return OpenDaylightExtensionsStatements.AUGMENT_IDENTIFIER;
+    }
+}
diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextInstanceEffectiveStatement.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextInstanceEffectiveStatement.java
new file mode 100644 (file)
index 0000000..3269b7a
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * 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.model.api;
+
+import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnknownEffectiveStatement;
+
+@Beta
+public interface ContextInstanceEffectiveStatement
+        extends UnknownEffectiveStatement<String, ContextInstanceStatement> {
+    @Override
+    default StatementDefinition statementDefinition() {
+        return OpenDaylightExtensionsStatements.CONTEXT_INSTANCE;
+    }
+}
diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextInstanceStatement.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextInstanceStatement.java
new file mode 100644 (file)
index 0000000..6031020
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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.model.api;
+
+import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
+
+@Beta
+public interface ContextInstanceStatement extends UnknownStatement<String> {
+    @Override
+    default StatementDefinition statementDefinition() {
+        return OpenDaylightExtensionsStatements.CONTEXT_INSTANCE;
+    }
+}
diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextReferenceEffectiveStatement.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextReferenceEffectiveStatement.java
new file mode 100644 (file)
index 0000000..363f521
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * 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.model.api;
+
+import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnknownEffectiveStatement;
+
+@Beta
+public interface ContextReferenceEffectiveStatement
+        extends UnknownEffectiveStatement<String, ContextReferenceStatement> {
+    @Override
+    default StatementDefinition statementDefinition() {
+        return OpenDaylightExtensionsStatements.CONTEXT_REFERENCE;
+    }
+}
diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextReferenceStatement.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/ContextReferenceStatement.java
new file mode 100644 (file)
index 0000000..16ce32c
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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.model.api;
+
+import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
+
+@Beta
+public interface ContextReferenceStatement extends UnknownStatement<String> {
+    @Override
+    default StatementDefinition statementDefinition() {
+        return OpenDaylightExtensionsStatements.CONTEXT_REFERENCE;
+    }
+}
diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/InstanceTargetEffectiveStatement.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/InstanceTargetEffectiveStatement.java
new file mode 100644 (file)
index 0000000..351491f
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * 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.model.api;
+
+import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnknownEffectiveStatement;
+
+@Beta
+public interface InstanceTargetEffectiveStatement
+        extends UnknownEffectiveStatement<String, InstanceTargetStatement> {
+    @Override
+    default StatementDefinition statementDefinition() {
+        return OpenDaylightExtensionsStatements.INSTANCE_TARGET;
+    }
+}
diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/InstanceTargetStatement.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/InstanceTargetStatement.java
new file mode 100644 (file)
index 0000000..3ab00f3
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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.model.api;
+
+import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
+
+@Beta
+public interface InstanceTargetStatement extends UnknownStatement<String> {
+    @Override
+    default StatementDefinition statementDefinition() {
+        return OpenDaylightExtensionsStatements.INSTANCE_TARGET;
+    }
+}
index 7ec3fe709dc1dc6ed03993b3eecc97cab044e9ac..2e9cb3a9858e9130bbda3569bdc21454300b1442 100644 (file)
@@ -23,12 +23,20 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 public enum OpenDaylightExtensionsStatements implements StatementDefinition {
     // FIXME: this extension is not present in yang-ext.yang as published by mdsal
     ANYXML_SCHEMA_LOCATION(QName.create(OpenDaylightExtensionsConstants.ORIGINAL_MODULE, "anyxml-schema-location"),
-        "target-node", AnyxmlSchemaLocationStatement.class, AnyxmlSchemaLocationEffectiveStatement.class);
-    // FIXME: add augment-identifier
-    // FIXME: add rpc-context-instance
-    // FIXME: add context-reference
-    // FIXME: add context-instance
-    // FIXME: add instance-target
+        "target-node", AnyxmlSchemaLocationStatement.class, AnyxmlSchemaLocationEffectiveStatement.class),
+    // Binding codegen support
+    AUGMENT_IDENTIFIER(QName.create(OpenDaylightExtensionsConstants.ORIGINAL_MODULE, "augment-identifier"),
+        "identifier", AugmentIdentifierStatement.class, AugmentIdentifierEffectiveStatement.class),
+
+    // Context-aware RPCs
+    CONTEXT_INSTANCE(QName.create(OpenDaylightExtensionsConstants.ORIGINAL_MODULE, "context-instance"),
+        "context-type", ContextInstanceStatement.class, ContextInstanceEffectiveStatement.class),
+    CONTEXT_REFERENCE(QName.create(OpenDaylightExtensionsConstants.ORIGINAL_MODULE, "context-reference"),
+        "context-type", ContextReferenceStatement.class, ContextReferenceEffectiveStatement.class),
+    INSTANCE_TARGET(QName.create(OpenDaylightExtensionsConstants.ORIGINAL_MODULE, "instance-target"),
+        "path", InstanceTargetStatement.class, InstanceTargetEffectiveStatement.class),
+    RPC_CONTEXT_REFERENCE(QName.create(OpenDaylightExtensionsConstants.ORIGINAL_MODULE, "rpc-context-reference"),
+        "context-type", RpcContextReferenceStatement.class, RpcContextReferenceEffectiveStatement.class);
 
     private final Class<? extends EffectiveStatement<?, ?>> effectiveRepresentation;
     private final Class<? extends DeclaredStatement<?>> declaredRepresentation;
diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/RpcContextReferenceEffectiveStatement.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/RpcContextReferenceEffectiveStatement.java
new file mode 100644 (file)
index 0000000..f8f0883
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * 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.model.api;
+
+import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnknownEffectiveStatement;
+
+@Beta
+public interface RpcContextReferenceEffectiveStatement
+        extends UnknownEffectiveStatement<String, RpcContextReferenceStatement> {
+    @Override
+    default StatementDefinition statementDefinition() {
+        return OpenDaylightExtensionsStatements.RPC_CONTEXT_REFERENCE;
+    }
+}
diff --git a/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/RpcContextReferenceStatement.java b/yang/odlext-model-api/src/main/java/org/opendaylight/yangtools/odlext/model/api/RpcContextReferenceStatement.java
new file mode 100644 (file)
index 0000000..a39b1d3
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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.model.api;
+
+import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
+
+@Beta
+public interface RpcContextReferenceStatement extends UnknownStatement<String> {
+    @Override
+    default StatementDefinition statementDefinition() {
+        return OpenDaylightExtensionsStatements.RPC_CONTEXT_REFERENCE;
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AugmentIdentifierEffectiveStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AugmentIdentifierEffectiveStatementImpl.java
new file mode 100644 (file)
index 0000000..2a25ef3
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * 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 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.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
+
+final class AugmentIdentifierEffectiveStatementImpl extends WithSubstatements<String, AugmentIdentifierStatement>
+        implements AugmentIdentifierEffectiveStatement {
+    AugmentIdentifierEffectiveStatementImpl(final AugmentIdentifierStatement declared,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        super(declared, substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AugmentIdentifierStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AugmentIdentifierStatementImpl.java
new file mode 100644 (file)
index 0000000..3b97987
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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 com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.odlext.model.api.AugmentIdentifierStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
+
+final class AugmentIdentifierStatementImpl extends WithSubstatements implements AugmentIdentifierStatement {
+    AugmentIdentifierStatementImpl(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        super(argument, substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AugmentIdentifierStatementSupport.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/AugmentIdentifierStatementSupport.java
new file mode 100644 (file)
index 0000000..ce99068
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * 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 com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+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.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.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
+
+@Beta
+public final class AugmentIdentifierStatementSupport
+        extends AbstractStringStatementSupport<AugmentIdentifierStatement, AugmentIdentifierEffectiveStatement> {
+    public static final @NonNull AugmentIdentifierStatementSupport INSTANCE = new AugmentIdentifierStatementSupport();
+
+    private static final SubstatementValidator VALIDATOR =
+        SubstatementValidator.builder(OpenDaylightExtensionsStatements.AUGMENT_IDENTIFIER).build();
+
+    private AugmentIdentifierStatementSupport() {
+        super(OpenDaylightExtensionsStatements.AUGMENT_IDENTIFIER, StatementPolicy.contextIndependent());
+    }
+
+    @Override
+    protected SubstatementValidator getSubstatementValidator() {
+        return VALIDATOR;
+    }
+
+    @Override
+    protected AugmentIdentifierStatement createDeclared(final StmtContext<String, AugmentIdentifierStatement, ?> ctx,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return new AugmentIdentifierStatementImpl(ctx.getArgument(), substatements);
+    }
+
+    @Override
+    protected AugmentIdentifierEffectiveStatement createEffective(
+            final Current<String, AugmentIdentifierStatement> stmt,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        return new AugmentIdentifierEffectiveStatementImpl(stmt.declared(), substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextInstanceEffectiveStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextInstanceEffectiveStatementImpl.java
new file mode 100644 (file)
index 0000000..d191f30
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * 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 com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.odlext.model.api.ContextInstanceEffectiveStatement;
+import org.opendaylight.yangtools.odlext.model.api.ContextInstanceStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
+
+final class ContextInstanceEffectiveStatementImpl extends WithSubstatements<String, ContextInstanceStatement>
+        implements ContextInstanceEffectiveStatement {
+    ContextInstanceEffectiveStatementImpl(final ContextInstanceStatement declared,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        super(declared, substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextInstanceStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextInstanceStatementImpl.java
new file mode 100644 (file)
index 0000000..b643605
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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 com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.odlext.model.api.ContextInstanceStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
+
+final class ContextInstanceStatementImpl extends WithSubstatements implements ContextInstanceStatement {
+    ContextInstanceStatementImpl(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        super(argument, substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextInstanceStatementSupport.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextInstanceStatementSupport.java
new file mode 100644 (file)
index 0000000..526b71f
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * 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 com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.odlext.model.api.ContextInstanceEffectiveStatement;
+import org.opendaylight.yangtools.odlext.model.api.ContextInstanceStatement;
+import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements;
+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.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
+
+@Beta
+public final class ContextInstanceStatementSupport
+        extends AbstractStringStatementSupport<ContextInstanceStatement, ContextInstanceEffectiveStatement> {
+    public static final @NonNull ContextInstanceStatementSupport INSTANCE = new ContextInstanceStatementSupport();
+
+    private static final SubstatementValidator VALIDATOR =
+        SubstatementValidator.builder(OpenDaylightExtensionsStatements.CONTEXT_INSTANCE).build();
+
+    private ContextInstanceStatementSupport() {
+        super(OpenDaylightExtensionsStatements.CONTEXT_INSTANCE, StatementPolicy.contextIndependent());
+    }
+
+    @Override
+    protected SubstatementValidator getSubstatementValidator() {
+        return VALIDATOR;
+    }
+
+    @Override
+    protected ContextInstanceStatement createDeclared(final StmtContext<String, ContextInstanceStatement, ?> ctx,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return new ContextInstanceStatementImpl(ctx.getArgument(), substatements);
+    }
+
+    @Override
+    protected ContextInstanceEffectiveStatement createEffective(final Current<String, ContextInstanceStatement> stmt,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        return new ContextInstanceEffectiveStatementImpl(stmt.declared(), substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextReferenceEffectiveStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextReferenceEffectiveStatementImpl.java
new file mode 100644 (file)
index 0000000..5557ede
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * 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 com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.odlext.model.api.ContextReferenceEffectiveStatement;
+import org.opendaylight.yangtools.odlext.model.api.ContextReferenceStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
+
+final class ContextReferenceEffectiveStatementImpl extends WithSubstatements<String, ContextReferenceStatement>
+        implements ContextReferenceEffectiveStatement {
+    ContextReferenceEffectiveStatementImpl(final ContextReferenceStatement declared,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        super(declared, substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextReferenceStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextReferenceStatementImpl.java
new file mode 100644 (file)
index 0000000..76ecb9a
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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 com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.odlext.model.api.ContextReferenceStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
+
+final class ContextReferenceStatementImpl extends WithSubstatements implements ContextReferenceStatement {
+    ContextReferenceStatementImpl(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        super(argument, substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextReferenceStatementSupport.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/ContextReferenceStatementSupport.java
new file mode 100644 (file)
index 0000000..67a5d87
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * 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 com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.odlext.model.api.ContextReferenceEffectiveStatement;
+import org.opendaylight.yangtools.odlext.model.api.ContextReferenceStatement;
+import org.opendaylight.yangtools.odlext.model.api.OpenDaylightExtensionsStatements;
+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.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
+
+@Beta
+public final class ContextReferenceStatementSupport
+        extends AbstractStringStatementSupport<ContextReferenceStatement, ContextReferenceEffectiveStatement> {
+    public static final @NonNull ContextReferenceStatementSupport INSTANCE = new ContextReferenceStatementSupport();
+
+    private static final SubstatementValidator VALIDATOR =
+        SubstatementValidator.builder(OpenDaylightExtensionsStatements.CONTEXT_REFERENCE).build();
+
+    private ContextReferenceStatementSupport() {
+        super(OpenDaylightExtensionsStatements.CONTEXT_REFERENCE, StatementPolicy.contextIndependent());
+    }
+
+    @Override
+    protected SubstatementValidator getSubstatementValidator() {
+        return VALIDATOR;
+    }
+
+    @Override
+    protected ContextReferenceStatement createDeclared(final StmtContext<String, ContextReferenceStatement, ?> ctx,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return new ContextReferenceStatementImpl(ctx.getArgument(), substatements);
+    }
+
+    @Override
+    protected ContextReferenceEffectiveStatement createEffective(final Current<String, ContextReferenceStatement> stmt,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        return new ContextReferenceEffectiveStatementImpl(stmt.declared(), substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetEffectiveStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetEffectiveStatementImpl.java
new file mode 100644 (file)
index 0000000..b9c47e7
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * 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 com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.odlext.model.api.InstanceTargetEffectiveStatement;
+import org.opendaylight.yangtools.odlext.model.api.InstanceTargetStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
+
+final class InstanceTargetEffectiveStatementImpl extends WithSubstatements<String, InstanceTargetStatement>
+        implements InstanceTargetEffectiveStatement {
+    InstanceTargetEffectiveStatementImpl(final InstanceTargetStatement declared,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        super(declared, substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetStatementImpl.java
new file mode 100644 (file)
index 0000000..e766f29
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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 com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.odlext.model.api.InstanceTargetStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
+
+final class InstanceTargetStatementImpl extends WithSubstatements implements InstanceTargetStatement {
+    InstanceTargetStatementImpl(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        super(argument, substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetStatementSupport.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/InstanceTargetStatementSupport.java
new file mode 100644 (file)
index 0000000..da0f706
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * 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 com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+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.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.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
+
+@Beta
+public final class InstanceTargetStatementSupport
+        extends AbstractStringStatementSupport<InstanceTargetStatement, InstanceTargetEffectiveStatement> {
+    public static final @NonNull InstanceTargetStatementSupport INSTANCE = new InstanceTargetStatementSupport();
+
+    private static final SubstatementValidator VALIDATOR =
+        SubstatementValidator.builder(OpenDaylightExtensionsStatements.INSTANCE_TARGET).build();
+
+    private InstanceTargetStatementSupport() {
+        super(OpenDaylightExtensionsStatements.INSTANCE_TARGET, StatementPolicy.contextIndependent());
+    }
+
+    @Override
+    protected SubstatementValidator getSubstatementValidator() {
+        return VALIDATOR;
+    }
+
+    @Override
+    protected InstanceTargetStatement createDeclared(final StmtContext<String, InstanceTargetStatement, ?> ctx,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return new InstanceTargetStatementImpl(ctx.getArgument(), substatements);
+    }
+
+    @Override
+    protected InstanceTargetEffectiveStatement createEffective(final Current<String, InstanceTargetStatement> stmt,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        return new InstanceTargetEffectiveStatementImpl(stmt.declared(), substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/RpcContextReferenceEffectiveStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/RpcContextReferenceEffectiveStatementImpl.java
new file mode 100644 (file)
index 0000000..c496061
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * 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 com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.odlext.model.api.RpcContextReferenceEffectiveStatement;
+import org.opendaylight.yangtools.odlext.model.api.RpcContextReferenceStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
+
+final class RpcContextReferenceEffectiveStatementImpl extends WithSubstatements<String, RpcContextReferenceStatement>
+        implements RpcContextReferenceEffectiveStatement {
+    RpcContextReferenceEffectiveStatementImpl(final RpcContextReferenceStatement declared,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        super(declared, substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/RpcContextReferenceStatementImpl.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/RpcContextReferenceStatementImpl.java
new file mode 100644 (file)
index 0000000..30cf2ff
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * 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 com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.odlext.model.api.RpcContextReferenceStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
+
+final class RpcContextReferenceStatementImpl extends WithSubstatements implements RpcContextReferenceStatement {
+    RpcContextReferenceStatementImpl(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        super(argument, substatements);
+    }
+}
diff --git a/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/RpcContextReferenceStatementSupport.java b/yang/odlext-parser-support/src/main/java/org/opendaylight/yangtools/odlext/parser/RpcContextReferenceStatementSupport.java
new file mode 100644 (file)
index 0000000..a3ea017
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * 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 com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableList;
+import org.eclipse.jdt.annotation.NonNull;
+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.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.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
+
+@Beta
+public final class RpcContextReferenceStatementSupport
+        extends AbstractStringStatementSupport<RpcContextReferenceStatement, RpcContextReferenceEffectiveStatement> {
+    public static final @NonNull RpcContextReferenceStatementSupport INSTANCE =
+        new RpcContextReferenceStatementSupport();
+
+    private static final SubstatementValidator VALIDATOR =
+        SubstatementValidator.builder(OpenDaylightExtensionsStatements.RPC_CONTEXT_REFERENCE).build();
+
+    private RpcContextReferenceStatementSupport() {
+        super(OpenDaylightExtensionsStatements.RPC_CONTEXT_REFERENCE, StatementPolicy.contextIndependent());
+    }
+
+    @Override
+    protected SubstatementValidator getSubstatementValidator() {
+        return VALIDATOR;
+    }
+
+    @Override
+    protected RpcContextReferenceStatement createDeclared(
+            final StmtContext<String, RpcContextReferenceStatement, ?> ctx,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return new RpcContextReferenceStatementImpl(ctx.getArgument(), substatements);
+    }
+
+    @Override
+    protected RpcContextReferenceEffectiveStatement createEffective(
+            final Current<String, RpcContextReferenceStatement> stmt,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        return new RpcContextReferenceEffectiveStatementImpl(stmt.declared(), substatements);
+    }
+}
index 6ae360dec65f6c6ccee682afc7ebfabf257fabf4..407f5d7a1036c0bed85cc8e966211e74cf2b5e4f 100644 (file)
@@ -11,6 +11,11 @@ import com.google.common.annotations.Beta;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.odlext.parser.AnyxmlSchemaLocationNamespace;
 import org.opendaylight.yangtools.odlext.parser.AnyxmlSchemaLocationStatementSupport;
+import org.opendaylight.yangtools.odlext.parser.AugmentIdentifierStatementSupport;
+import org.opendaylight.yangtools.odlext.parser.ContextInstanceStatementSupport;
+import org.opendaylight.yangtools.odlext.parser.ContextReferenceStatementSupport;
+import org.opendaylight.yangtools.odlext.parser.InstanceTargetStatementSupport;
+import org.opendaylight.yangtools.odlext.parser.RpcContextReferenceStatementSupport;
 import org.opendaylight.yangtools.openconfig.parser.EncryptedValueStatementSupport;
 import org.opendaylight.yangtools.openconfig.parser.HashedValueStatementSupport;
 import org.opendaylight.yangtools.rfc6241.parser.GetFilterElementAttributesStatementSupport;
@@ -91,10 +96,16 @@ public final class DefaultReactors {
     private static @NonNull CustomCrossSourceStatementReactorBuilder addExtensions(
             final @NonNull CustomCrossSourceStatementReactorBuilder builder) {
         return builder
-                // AnyxmlSchemaLocation support
+                // OpenDaylight extensions
                 .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
                     AnyxmlSchemaLocationStatementSupport.getInstance())
                 .addNamespaceSupport(ModelProcessingPhase.FULL_DECLARATION, AnyxmlSchemaLocationNamespace.BEHAVIOUR)
+                .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, AugmentIdentifierStatementSupport.INSTANCE)
+                .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, ContextInstanceStatementSupport.INSTANCE)
+                .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, ContextReferenceStatementSupport.INSTANCE)
+                .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, InstanceTargetStatementSupport.INSTANCE)
+                .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
+                    RpcContextReferenceStatementSupport.INSTANCE)
 
                 // RFC6241 get-filter-element-attributes support
                 .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,