import org.opendaylight.yangtools.yang.data.util.LeafNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.ListEntryNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.ListNodeDataWithSchema;
+import org.opendaylight.yangtools.yang.data.util.OperationAsContainer;
import org.opendaylight.yangtools.yang.data.util.ParserStreamUtils;
-import org.opendaylight.yangtools.yang.data.util.RpcAsContainer;
import org.opendaylight.yangtools.yang.data.util.SimpleNodeDataWithSchema;
import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
+import org.opendaylight.yangtools.yang.model.api.OperationDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
* @return A new {@link JsonParserStream}
* @throws NullPointerException if any of the arguments are null
*/
- public static JsonParserStream create(final @NonNull NormalizedNodeStreamWriter writer,
+ public static @NonNull JsonParserStream create(final @NonNull NormalizedNodeStreamWriter writer,
final @NonNull JSONCodecFactory codecFactory) {
return new JsonParserStream(writer, codecFactory, codecFactory.getSchemaContext());
}
* @return A new {@link JsonParserStream}
* @throws NullPointerException if any of the arguments are null
*/
- public static JsonParserStream create(final @NonNull NormalizedNodeStreamWriter writer,
+ public static @NonNull JsonParserStream create(final @NonNull NormalizedNodeStreamWriter writer,
final @NonNull JSONCodecFactory codecFactory, final @NonNull SchemaNode parentNode) {
- if (parentNode instanceof RpcDefinition) {
- return new JsonParserStream(writer, codecFactory, new RpcAsContainer((RpcDefinition) parentNode));
+ final DataSchemaNode parent;
+ if (parentNode instanceof DataSchemaNode) {
+ parent = (DataSchemaNode) parentNode;
+ } else if (parentNode instanceof OperationDefinition) {
+ parent = OperationAsContainer.of((OperationDefinition) parentNode);
+ } else {
+ throw new IllegalArgumentException("Illegal parent node " + requireNonNull(parentNode));
}
- checkArgument(parentNode instanceof DataSchemaNode, "An instance of DataSchemaNode is expected, %s supplied",
- parentNode);
- return new JsonParserStream(writer, codecFactory, (DataSchemaNode) parentNode);
+ return new JsonParserStream(writer, codecFactory, parent);
}
/**
*
* @deprecated Use {@link #create(NormalizedNodeStreamWriter, JSONCodecFactory)} instead.
*/
- @Deprecated
- public static JsonParserStream create(final @NonNull NormalizedNodeStreamWriter writer,
+ @Deprecated public static @NonNull JsonParserStream create(final @NonNull NormalizedNodeStreamWriter writer,
final @NonNull SchemaContext schemaContext) {
return create(writer, JSONCodecFactorySupplier.DRAFT_LHOTKA_NETMOD_YANG_JSON_02.getShared(schemaContext));
}
*
* @deprecated Use {@link #create(NormalizedNodeStreamWriter, JSONCodecFactory, SchemaNode)} instead.
*/
- @Deprecated
- public static JsonParserStream create(final @NonNull NormalizedNodeStreamWriter writer,
+ @Deprecated public static @NonNull JsonParserStream create(final @NonNull NormalizedNodeStreamWriter writer,
final @NonNull SchemaContext schemaContext, final @NonNull SchemaNode parentNode) {
return create(writer, JSONCodecFactorySupplier.DRAFT_LHOTKA_NETMOD_YANG_JSON_02.getShared(schemaContext),
parentNode);
import org.opendaylight.yangtools.yang.data.util.LeafNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.ListEntryNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.ListNodeDataWithSchema;
+import org.opendaylight.yangtools.yang.data.util.OperationAsContainer;
import org.opendaylight.yangtools.yang.data.util.ParserStreamUtils;
-import org.opendaylight.yangtools.yang.data.util.RpcAsContainer;
import org.opendaylight.yangtools.yang.data.util.SimpleNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.YangModeledAnyXmlNodeDataWithSchema;
import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
+import org.opendaylight.yangtools.yang.model.api.OperationDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
*/
public static XmlParserStream create(final NormalizedNodeStreamWriter writer, final XmlCodecFactory codecs,
final SchemaNode parentNode, final boolean strictParsing) {
- if (parentNode instanceof RpcDefinition) {
- return new XmlParserStream(writer, codecs, new RpcAsContainer((RpcDefinition) parentNode), strictParsing);
+ final DataSchemaNode parent;
+ if (parentNode instanceof DataSchemaNode) {
+ parent = (DataSchemaNode) parentNode;
+ } else if (parentNode instanceof OperationDefinition) {
+ parent = OperationAsContainer.of((OperationDefinition) parentNode);
+ } else {
+ throw new IllegalArgumentException("Illegal parent node " + parentNode);
}
- checkArgument(parentNode instanceof DataSchemaNode, "Instance of DataSchemaNode class awaited.");
- return new XmlParserStream(writer, codecs, (DataSchemaNode) parentNode, strictParsing);
+ return new XmlParserStream(writer, codecs, parent, strictParsing);
}
/**
--- /dev/null
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. 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.yang.data.util;
+
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.annotations.Beta;
+import com.google.common.collect.ForwardingObject;
+import com.google.common.collect.ImmutableSet;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
+import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
+import org.opendaylight.yangtools.yang.model.api.MustDefinition;
+import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
+import org.opendaylight.yangtools.yang.model.api.OperationDefinition;
+import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.Status;
+import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
+import org.opendaylight.yangtools.yang.model.api.UsesNode;
+
+@Beta
+public class OperationAsContainer extends ForwardingObject implements ContainerSchemaNode, OperationDefinition {
+ private final OperationDefinition delegate;
+
+ OperationAsContainer(final OperationDefinition parentNode) {
+ delegate = requireNonNull(parentNode);
+ }
+
+ public static OperationAsContainer of(final OperationDefinition delegate) {
+ return new OperationAsContainer(delegate);
+ }
+
+ @Override
+ protected final OperationDefinition delegate() {
+ return delegate;
+ }
+
+ @Override
+ public final Optional<String> getDescription() {
+ return delegate.getDescription();
+ }
+
+ @Override
+ public final Optional<String> getReference() {
+ return delegate.getReference();
+ }
+
+ @Override
+ public final Set<TypeDefinition<?>> getTypeDefinitions() {
+ return delegate.getTypeDefinitions();
+ }
+
+ @Override
+ public final Set<GroupingDefinition> getGroupings() {
+ return delegate.getGroupings();
+ }
+
+ @Override
+ public final Status getStatus() {
+ return delegate.getStatus();
+ }
+
+ @Override
+ public final ContainerSchemaNode getInput() {
+ return delegate.getInput();
+ }
+
+ @Override
+ public final ContainerSchemaNode getOutput() {
+ return delegate.getOutput();
+ }
+
+ @Override
+ public final QName getQName() {
+ return delegate.getQName();
+ }
+
+ @Override
+ public final SchemaPath getPath() {
+ return delegate.getPath();
+ }
+
+ @Override
+ public final Optional<DataSchemaNode> findDataChildByName(final QName name) {
+ // FIXME: 3.0.0: check QNameModule
+ switch (name.getLocalName()) {
+ case "input":
+ return Optional.of(delegate.getInput());
+ case "output":
+ return Optional.of(delegate.getOutput());
+ default:
+ return Optional.empty();
+ }
+ }
+
+ @Override
+ public Set<UsesNode> getUses() {
+ return ImmutableSet.of();
+ }
+
+ @Override
+ public final Set<AugmentationSchemaNode> getAvailableAugmentations() {
+ return ImmutableSet.of();
+ }
+
+ @Override
+ public final boolean isPresenceContainer() {
+ return false;
+ }
+
+ @Override
+ public final Collection<DataSchemaNode> getChildNodes() {
+ final List<DataSchemaNode> ret = new ArrayList<>();
+ final ContainerSchemaNode input = getInput();
+ final ContainerSchemaNode output = getOutput();
+ if (input != null) {
+ ret.add(input);
+ }
+ if (output != null) {
+ ret.add(output);
+ }
+ return ret;
+ }
+
+ @Deprecated
+ @Override
+ public final boolean isAugmenting() {
+ return false;
+ }
+
+ @Deprecated
+ @Override
+ public final boolean isAddedByUses() {
+ return false;
+ }
+
+ @Override
+ public final boolean isConfiguration() {
+ return false;
+ }
+
+ @Override
+ public final Set<ActionDefinition> getActions() {
+ return ImmutableSet.of();
+ }
+
+ @Override
+ public final Set<NotificationDefinition> getNotifications() {
+ return ImmutableSet.of();
+ }
+
+ @Override
+ public final Collection<MustDefinition> getMustConstraints() {
+ return ImmutableSet.of();
+ }
+
+ @Override
+ public final Optional<RevisionAwareXPath> getWhenCondition() {
+ return Optional.empty();
+ }
+}
*/
package org.opendaylight.yangtools.yang.data.util;
-import com.google.common.collect.ImmutableSet;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
-import java.util.Set;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
-import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
-import org.opendaylight.yangtools.yang.model.api.MustDefinition;
-import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
-import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.Status;
-import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.UsesNode;
-public final class RpcAsContainer implements ContainerSchemaNode {
-
- private final RpcDefinition delegate;
-
- @Override
- public Optional<String> getDescription() {
- return delegate.getDescription();
- }
-
- @Override
- public Optional<String> getReference() {
- return delegate.getReference();
- }
-
- @Override
- public Set<TypeDefinition<?>> getTypeDefinitions() {
- return delegate.getTypeDefinitions();
- }
-
- @Override
- public Set<GroupingDefinition> getGroupings() {
- return delegate.getGroupings();
- }
-
- @Nonnull
- @Override
- public Status getStatus() {
- return delegate.getStatus();
- }
-
- public ContainerSchemaNode getInput() {
- return delegate.getInput();
- }
-
- public ContainerSchemaNode getOutput() {
- return delegate.getOutput();
- }
-
- public RpcAsContainer(final RpcDefinition parentNode) {
- delegate = parentNode;
- }
-
- @Nonnull
- @Override
- public QName getQName() {
- return delegate.getQName();
- }
-
- @Nonnull
- @Override
- public SchemaPath getPath() {
- return delegate.getPath();
- }
-
- @Nonnull
- @Override
- public List<UnknownSchemaNode> getUnknownSchemaNodes() {
- return Collections.emptyList();
- }
-
- @Override
- public Optional<DataSchemaNode> findDataChildByName(final QName name) {
- // FIXME: check QNameModule
- switch (name.getLocalName()) {
- case "input":
- return Optional.of(delegate.getInput());
- case "output":
- return Optional.of(delegate.getOutput());
- default:
- return Optional.empty();
- }
- }
-
- @Override
- public Set<UsesNode> getUses() {
- return Collections.emptySet();
- }
-
- @Override
- public Set<AugmentationSchemaNode> getAvailableAugmentations() {
- return Collections.emptySet();
- }
-
- @Override
- public boolean isPresenceContainer() {
- return false;
- }
-
- @Override
- public Collection<DataSchemaNode> getChildNodes() {
- final List<DataSchemaNode> ret = new ArrayList<>();
- final ContainerSchemaNode input = getInput();
- final ContainerSchemaNode output = getOutput();
- if (input != null) {
- ret.add(input);
- }
- if (output != null) {
- ret.add(output);
- }
- return ret;
- }
-
- @Deprecated
- @Override
- public boolean isAugmenting() {
- return false;
- }
-
- @Deprecated
- @Override
- public boolean isAddedByUses() {
- return false;
- }
-
- @Override
- public boolean isConfiguration() {
- return false;
- }
-
- @Override
- public Set<ActionDefinition> getActions() {
- return ImmutableSet.of();
- }
-
- @Override
- public Set<NotificationDefinition> getNotifications() {
- return ImmutableSet.of();
- }
-
- @Override
- public Collection<MustDefinition> getMustConstraints() {
- return ImmutableSet.of();
- }
-
- @Override
- public Optional<RevisionAwareXPath> getWhenCondition() {
- return Optional.empty();
+// FIXME: 3.0.0: Rename this to "OperationAsContainer"
+@Deprecated
+public final class RpcAsContainer extends OperationAsContainer {
+ public RpcAsContainer(final RpcDefinition delegate) {
+ super(delegate);
}
}