+++ /dev/null
-/*
- * Copyright (c) 2015 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.api.schema;
-
-import com.google.common.annotations.Beta;
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.data.api.AttributesContainer;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
-
-/**
- * AnyXML node with schema of contained XML data.
- */
-@Beta
-public interface YangModeledAnyXmlNode extends AttributesContainer, DataContainerNode<NodeIdentifier>,
- DataContainerChild<NodeIdentifier, Collection<DataContainerChild<? extends PathArgument, ?>>> {
-
- /**
- * @return DataSchemaNode - schema of contained XML data
- */
- @Nonnull
- ContainerSchemaNode getSchemaOfAnyXmlData();
-}
delegate().startContainerNode(name, childSizeHint, attributes);
}
- @Override
- public void startYangModeledAnyXmlNode(final NodeIdentifier name, final int childSizeHint,
- final Map<QName, String> attributes) throws IOException {
- delegate().startYangModeledAnyXmlNode(name, childSizeHint, attributes);
- }
-
@Override
public void startUnkeyedListItem(final NodeIdentifier name, final int childSizeHint,
final Map<QName, String> attributes) throws IOException {
delegate().anyxmlNode(name, value);
}
- @Override
- public void startYangModeledAnyXmlNode(final NodeIdentifier name, final int childSizeHint) throws IOException {
- delegate().startYangModeledAnyXmlNode(name, childSizeHint);
- }
-
@Override
public void endNode() throws IOException {
delegate().endNode();
LOG.debug("{}{}(anyxml)=", ind(), name, value);
}
- @Override
- public void startYangModeledAnyXmlNode(final NodeIdentifier name, final int childSizeHint) {
- LOG.debug("{}{}(yangModeledAnyXml)", ind(), name);
- incIndent();
- }
-
@Override
public void flush() {
LOG.trace("<<FLUSH>>");
void startContainerNode(YangInstanceIdentifier.NodeIdentifier name, int childSizeHint, Map<QName, String> attributes) throws IOException;
- void startYangModeledAnyXmlNode(YangInstanceIdentifier.NodeIdentifier name, int childSizeHint, Map<QName, String> attributes) throws IOException;
-
void startUnkeyedListItem(YangInstanceIdentifier.NodeIdentifier name, int childSizeHint, Map<QName, String> attributes) throws IOException;
void startMapEntryNode(YangInstanceIdentifier.NodeIdentifierWithPredicates identifier, int childSizeHint, Map<QName, String> attributes) throws IOException;
* name of node as defined in schema, namespace and revision are
* derived from parent node.
* @param childSizeHint
- * Non-negative count of expected direct child nodes or
- * {@link #UNKNOWN_SIZE} if count is unknown. This is only hint
- * and should not fail writing of child events, if there are more
- * events than count.
* @throws IllegalArgumentException
- * If emitted node is invalid in current context or was emitted
- * multiple times.
* @throws IllegalStateException
* If node was emitted inside <code>map</code>,
* <code>choice</code> <code>unkeyed list</code> node.
*
* @param identifier
* QName to value pairs of keys of map entry node. Values MUST BE constant over time.
- * @param childSizeHint
- * Non-negative count of expected direct child nodes or
- * {@link #UNKNOWN_SIZE} if count is unknown. This is only hint
- * and should not fail writing of child events, if there are more
- * events than count.
* @throws IllegalArgumentException
* If key contains incorrect value.
* @throws IllegalStateException
* @param name
* name of node as defined in schema, namespace and revision are
* derived from parent node.
- * @param childSizeHint
- * Non-negative count of expected direct child nodes or
- * {@link #UNKNOWN_SIZE} if count is unknown. This is only hint
- * and should not fail writing of child events, if there are more
- * events than count.
* @throws IllegalArgumentException
- * If emitted node is invalid in current context or was emitted
- * multiple times.
* @throws IllegalStateException
* If node was emitted inside <code>map</code>,
* <code>choice</code> <code>unkeyed list</code> node.
* name of node as defined in schema, namespace and revision are
* derived from parent node.
* @param childSizeHint
- * Non-negative count of expected direct child nodes or
- * {@link #UNKNOWN_SIZE} if count is unknown. This is only hint
- * and should not fail writing of child events, if there are more
- * events than count.
* @throws IllegalArgumentException
- * If emitted node is invalid in current context or was emitted
- * multiple times.
* @throws IllegalStateException
* If node was emitted inside <code>map</code>,
* <code>choice</code> <code>unkeyed list</code> node.
* Emits anyxml node event.
*
* @param name
- * name of node as defined in schema, namespace and revision are
- * derived from parent node.
* @param value
- * Value of AnyXml node.
* @throws IllegalArgumentException
- * If emitted node is invalid in current context or was emitted
- * multiple times.
* @throws IllegalStateException
* If node was emitted inside <code>map</code>,
* <code>choice</code> <code>unkeyed list</code> node.
*/
void anyxmlNode(NodeIdentifier name, Object value) throws IOException;
- /**
- *
- * Emits start of new yang modeled anyXml node.
- *
- * <p>
- * End of yang modeled anyXml node event is emitted by invoking {@link #endNode()}.
- *
- * <p>
- * Valid sub-events are:
- * <ul>
- * <li>{@link #leafNode}</li>
- * <li>{@link #startContainerNode}</li>
- * <li>{@link #startLeafSet}</li>
- * <li>{@link #startMapNode}</li>
- * <li>{@link #startUnkeyedList}</li>
- * </ul>
- *
- * @param name
- * name of node as defined in schema, namespace and revision are
- * derived from parent node.
- * @param childSizeHint
- * Non-negative count of expected direct child nodes or
- * {@link #UNKNOWN_SIZE} if count is unknown. This is only hint
- * and should not fail writing of child events, if there are more
- * events than count.
- * @throws IllegalArgumentException
- * If emitted node is invalid in current context or was emitted
- * multiple times.
- * @throws IllegalStateException
- * If node was emitted inside <code>map</code>,
- * <code>choice</code> <code>unkeyed list</code> node.
- * @throws IOException if an underlying IO error occurs
- */
- void startYangModeledAnyXmlNode(NodeIdentifier name, int childSizeHint) throws IOException;
-
/**
* Emits end event for node.
*
writer.value(String.valueOf(value));
}
- @Override
- public void startYangModeledAnyXmlNode(final NodeIdentifier name, final int childSizeHint) throws IOException {
- tracker.startYangModeledAnyXmlNode(name);
- context = new JSONStreamWriterNamedObjectContext(context, name, true);
- }
-
@Override
public void endNode() throws IOException {
tracker.endNode();
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.YangModeledAnyXmlSchemaNode;
import org.opendaylight.yangtools.yang.model.util.EffectiveAugmentationSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Preconditions.checkArgument(isAllowed, "Node %s is not a container nor a notification", schema.getPath());
schemaStack.push(schema);
-
- return schema;
- }
-
- public SchemaNode startYangModeledAnyXmlNode(final NodeIdentifier name) {
- LOG.debug("Enter yang modeled anyXml {}", name);
- final SchemaNode schema = getSchema(name);
-
- Preconditions.checkArgument(schema instanceof YangModeledAnyXmlSchemaNode,
- "Node %s is not an yang modeled anyXml.", schema.getPath());
-
- schemaStack.push(((YangModeledAnyXmlSchemaNode) schema).getSchemaOfAnyXmlData());
-
return schema;
}
*
* @param writer Output {@link XMLStreamWriter}
* @param context Associated {@link SchemaContext}.
- * @param path path
*
* @return A new {@link NormalizedNodeStreamWriter}
*/
writeAttributes(attributes);
}
- @Override
- public void startYangModeledAnyXmlNode(final NodeIdentifier name, final int childSizeHint, final Map<QName, String> attributes) throws IOException {
- startYangModeledAnyXmlNode(name, childSizeHint);
- writeAttributes(attributes);
- }
-
@Override
public void startUnkeyedListItem(final NodeIdentifier name, final int childSizeHint, final Map<QName, String> attributes) throws IOException {
startUnkeyedListItem(name, childSizeHint);
}
}
- @Override
- public void startYangModeledAnyXmlNode(final NodeIdentifier name, final int childSizeHint) throws IOException {
- final SchemaNode schema = tracker.startYangModeledAnyXmlNode(name);
- startElement(schema.getQName());
- }
-
public static String toString(final Element xml) {
try {
final Transformer transformer = TransformerFactory.newInstance().newTransformer();
import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
-import org.opendaylight.yangtools.yang.data.api.schema.YangModeledAnyXmlNode;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableOrderedMapNodeSchemaAwareBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListEntryNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableYangModeledAnyXmlNodeBuilder;
import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
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.YangModeledAnyXmlSchemaNode;
public final class Builders {
return ImmutableAnyXmlNodeSchemaAwareBuilder.create(schema);
}
- public static <T> DataContainerNodeAttrBuilder<NodeIdentifier, YangModeledAnyXmlNode> yangModeledAnyXmlBuilder(
- final YangModeledAnyXmlSchemaNode schema) {
- return ImmutableYangModeledAnyXmlNodeBuilder.create(schema);
- }
-
public static <T> ListNodeBuilder<T,LeafSetEntryNode<T>> leafSetBuilder() {
return ImmutableLeafSetNodeBuilder.create();
}
import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
-import org.opendaylight.yangtools.yang.data.api.schema.YangModeledAnyXmlNode;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableOrderedMapNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListEntryNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableUnkeyedListNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableYangModeledAnyXmlNodeBuilder;
import org.opendaylight.yangtools.yang.data.util.LeafInterner;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.YangModeledAnyXmlSchemaNode;
/**
*
enter(builder.withNodeIdentifier(name));
}
- @Override
- public void startYangModeledAnyXmlNode(final NodeIdentifier name, final int childSizeHint) {
- checkDataNodeContainer();
-
- Preconditions.checkArgument(nextSchema instanceof YangModeledAnyXmlSchemaNode,
- "Schema of this node should be instance of YangModeledAnyXmlSchemaNode");
- final DataContainerNodeAttrBuilder<NodeIdentifier, YangModeledAnyXmlNode> builder = UNKNOWN_SIZE == childSizeHint ? ImmutableYangModeledAnyXmlNodeBuilder
- .create((YangModeledAnyXmlSchemaNode) nextSchema) : ImmutableYangModeledAnyXmlNodeBuilder.create(
- (YangModeledAnyXmlSchemaNode) nextSchema, childSizeHint);
- enter(builder.withNodeIdentifier(name));
- }
-
@Override
public void startUnkeyedList(final NodeIdentifier name, final int childSizeHint) {
checkDataNodeContainer();
+++ /dev/null
-/*
- * Copyright (c) 2015 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.impl.schema.builder.impl;
-
-import com.google.common.base.Preconditions;
-import java.util.Map;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
-import org.opendaylight.yangtools.yang.data.api.schema.YangModeledAnyXmlNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableDataContainerAttrNode;
-import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.YangModeledAnyXmlSchemaNode;
-
-public class ImmutableYangModeledAnyXmlNodeBuilder extends
- AbstractImmutableDataContainerNodeAttrBuilder<NodeIdentifier, YangModeledAnyXmlNode> {
-
- private final ContainerSchemaNode contentSchema;
-
- private ImmutableYangModeledAnyXmlNodeBuilder(final YangModeledAnyXmlSchemaNode yangModeledAnyXMLSchemaNode) {
- Preconditions.checkNotNull(yangModeledAnyXMLSchemaNode, "Yang modeled any xml node must not be null.");
- super.withNodeIdentifier(NodeIdentifier.create(yangModeledAnyXMLSchemaNode.getQName()));
- this.contentSchema = yangModeledAnyXMLSchemaNode.getSchemaOfAnyXmlData();
- }
-
- private ImmutableYangModeledAnyXmlNodeBuilder(final YangModeledAnyXmlSchemaNode yangModeledAnyXMLSchemaNode, final int sizeHint) {
- super(sizeHint);
- Preconditions.checkNotNull(yangModeledAnyXMLSchemaNode, "Yang modeled any xml node must not be null.");
- super.withNodeIdentifier(NodeIdentifier.create(yangModeledAnyXMLSchemaNode.getQName()));
- this.contentSchema = yangModeledAnyXMLSchemaNode.getSchemaOfAnyXmlData();
- }
-
- public static DataContainerNodeAttrBuilder<NodeIdentifier, YangModeledAnyXmlNode> create(
- final YangModeledAnyXmlSchemaNode yangModeledAnyXMLSchemaNode) {
- return new ImmutableYangModeledAnyXmlNodeBuilder(yangModeledAnyXMLSchemaNode);
- }
-
- public static DataContainerNodeAttrBuilder<NodeIdentifier, YangModeledAnyXmlNode> create(
- final YangModeledAnyXmlSchemaNode yangModeledAnyXMLSchemaNode, final int sizeHint) {
- return new ImmutableYangModeledAnyXmlNodeBuilder(yangModeledAnyXMLSchemaNode, sizeHint);
- }
-
- @Override
- public YangModeledAnyXmlNode build() {
- return new ImmutableYangModeledAnyXmlNode(getNodeIdentifier(), buildValue(), getAttributes(), contentSchema);
- }
-
- private static final class ImmutableYangModeledAnyXmlNode extends
- AbstractImmutableDataContainerAttrNode<NodeIdentifier> implements YangModeledAnyXmlNode {
-
- private final ContainerSchemaNode contentSchema;
-
- ImmutableYangModeledAnyXmlNode(final NodeIdentifier nodeIdentifier,
- final Map<PathArgument, DataContainerChild<? extends PathArgument, ?>> value,
- final Map<QName, String> attributes, final ContainerSchemaNode contentSchema) {
- super(value, nodeIdentifier, attributes);
- this.contentSchema = Preconditions.checkNotNull(contentSchema, "Schema of yang modeled anyXml content cannot be null.");
- }
-
- @Override
- public ContainerSchemaNode getSchemaOfAnyXmlData() {
- return contentSchema;
- }
- }
-}
delegate().anyxmlNode(transform(name), value);
}
- @Override
- public void startYangModeledAnyXmlNode(final NodeIdentifier name, final int childSizeHint) throws IOException, IllegalArgumentException {
- delegate().startYangModeledAnyXmlNode(transform(name), childSizeHint);
- }
-
@Override
public void endNode() throws IOException, IllegalStateException {
delegate().endNode();
+++ /dev/null
-/*
- * Copyright (c) 2015 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.model.api;
-
-import com.google.common.annotations.Beta;
-import javax.annotation.Nonnull;
-
-/**
- * The "YangModeledAnyXml" interface defines an interior node in the schema tree. It takes
- * one argument, which is an identifier represented by QName inherited from
- * {@link SchemaNode}, followed by a block of substatements that holds detailed
- * anyxml information. The substatements are defined in {@link DataSchemaNode}.
- * The "YangModeledAnyXml" in contrast to the "AnyXml" interface can also provide schema
- * of contained XML information. <br>
- * <br>
- * This interface was modeled according to definition in <a
- * href="https://tools.ietf.org/html/rfc6020#section-7.10">[RFC-6020] The anyxml
- * Statement</a>
- *
- *
- */
-@Beta
-public interface YangModeledAnyXmlSchemaNode extends AnyXmlSchemaNode {
-
- /**
- * @return DataSchemaNode - schema of contained XML data
- */
- @Nonnull
- ContainerSchemaNode getSchemaOfAnyXmlData();
-}