import javax.xml.transform.dom.DOMSource;
import org.checkerframework.checker.regex.qual.Regex;
import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
-import org.opendaylight.yangtools.rfc8528.data.api.StreamWriterMountPointExtension;
+import org.opendaylight.yangtools.rfc8528.model.api.MountPointLabel;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedAnydata;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMountPointExtension;
import org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack;
import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
}
@Override
- public final NormalizedNodeStreamWriter startMountPoint(final MountPointIdentifier mountId,
+ public final NormalizedNodeStreamWriter startMountPoint(final MountPointLabel label,
final MountPointContext mountCtx) throws IOException {
final EffectiveModelContext ctx = mountCtx.getEffectiveModelContext();
return new Nested(codecs.rebaseTo(ctx), NormalizedNodeStreamWriterStack.of(ctx), writer,
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stax.StAXSource;
import org.opendaylight.yangtools.rfc7952.model.api.AnnotationSchemaNode;
-import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
import org.opendaylight.yangtools.rfc8528.data.api.YangLibraryConstants;
+import org.opendaylight.yangtools.rfc8528.model.api.MountPointLabel;
import org.opendaylight.yangtools.rfc8528.model.api.MountPointSchemaNode;
import org.opendaylight.yangtools.rfc8528.model.api.SchemaMountConstants;
import org.opendaylight.yangtools.yang.common.QName;
}
if (optMount.isPresent()) {
- final var mountId = MountPointIdentifier.of(optMount.orElseThrow().getQName());
+ final var label = new MountPointLabel(optMount.orElseThrow().getQName());
LOG.debug("Assuming node {} and namespace {} belongs to mount point {}", xmlElementName,
- nsUri, mountId);
+ nsUri, label);
- final var optFactory = codecs.mountPointContext().findMountPoint(mountId.getLabel());
+ final var optFactory = codecs.mountPointContext().findMountPoint(label);
if (optFactory.isPresent()) {
- final var mountData = mountParent.getMountPointData(mountId, optFactory.orElseThrow());
+ final var mountData = mountParent.getMountPointData(label, optFactory.orElseThrow());
addMountPointChild(mountData, nsUri, xmlElementName,
new DOMSource(readAnyXmlValue(in).getDocumentElement()));
continue;
}
- LOG.debug("Mount point {} not attached", mountId);
+ LOG.debug("Mount point {} not attached", label);
}
}
import java.io.IOException;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.rfc8528.data.api.MountPointNode;
-import org.opendaylight.yangtools.rfc8528.data.api.StreamWriterMountPointExtension;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMountPointExtension;
/**
* A {@link MountPointNode}-aware counterpart to {@link NormalizedNodeWriter}. Based on the backing writer's capability
@Override
void writeMountPoint(final MountPointNode node) throws IOException {
try (MountPointNormalizedNodeWriter writer = forStreamWriter(mountWriter.startMountPoint(
- node.getIdentifier(), node.getMountPointContext()))) {
+ node.getIdentifier().getLabel(), node.getMountPointContext()))) {
for (DataContainerChild child : node.body()) {
writer.write(child);
}
* 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.data.api;
+package org.opendaylight.yangtools.yang.data.api.schema.stream;
import com.google.common.annotations.Beta;
import java.io.IOException;
import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.opendaylight.yangtools.rfc8528.model.api.MountPointLabel;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension;
/**
* A {@link NormalizedNodeStreamWriterExtension} exposed by stream writers which can handle mount point data, notably
* returned writer will be {@link NormalizedNodeStreamWriter#close()}d, at which point the parent writer will be
* used again to emit the rest of the tree.
*
- * @param mountId Mount point identifier
+ * @param label Mount point label
* @param mountCtx Mount point context
* @return A new NormalizedNodeStreamWriter
* @throws IOException if an error occurs
*/
- NormalizedNodeStreamWriter startMountPoint(MountPointIdentifier mountId, MountPointContext mountCtx)
- throws IOException;
+ NormalizedNodeStreamWriter startMountPoint(MountPointLabel label, MountPointContext mountCtx) throws IOException;
}
import com.google.common.collect.ImmutableClassToInstanceMap;
import java.io.IOException;
import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
-import org.opendaylight.yangtools.rfc8528.data.api.StreamWriterMountPointExtension;
import org.opendaylight.yangtools.rfc8528.data.util.ImmutableMountPointNode;
+import org.opendaylight.yangtools.rfc8528.model.api.MountPointLabel;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
import org.opendaylight.yangtools.yang.data.api.schema.stream.ForwardingNormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMountPointExtension;
// FIXME: document usage of this
@Beta
}
@Override
- public final NormalizedNodeStreamWriter startMountPoint(final MountPointIdentifier mountId,
+ public final NormalizedNodeStreamWriter startMountPoint(final MountPointLabel label,
final MountPointContext mountCtx) {
final NormalizedNodeResult mountResult = new NormalizedNodeResult();
final NormalizedNodeStreamWriter mountDelegate = ImmutableNormalizedNodeStreamWriter.from(mountResult);
throw new IOException("Unhandled mount data " + data);
}
- writeChild(ImmutableMountPointNode.of(mountId, mountCtx, container));
+ writeChild(ImmutableMountPointNode.of(new MountPointIdentifier(label), mountCtx, container));
}
};
}
import com.google.common.annotations.Beta;
import java.io.IOException;
-import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
+import org.opendaylight.yangtools.rfc8528.model.api.MountPointLabel;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContextFactory;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
/**
* A {@link CompositeNodeDataWithSchema} which can hold mount-point data. This data is manipulated through
- * {@link #getMountPointData(MountPointIdentifier, MountPointContextFactory)}.
+ * {@link #getMountPointData(MountPointLabel, MountPointContextFactory)}.
*/
@Beta
public abstract class AbstractMountPointDataWithSchema<T extends DataSchemaNode>
}
}
- public final MountPointData getMountPointData(final MountPointIdentifier label,
- final MountPointContextFactory factory) {
+ public final MountPointData getMountPointData(final MountPointLabel label, final MountPointContextFactory factory) {
if (mountedData != null) {
- final MountPointIdentifier existing = mountedData.getIdentifier();
+ final var existing = mountedData.getIdentifier();
checkState(label.equals(existing), "Mismatched mount label {}, already have {}", label, existing);
} else {
mountedData = new MountPointData(label, factory);
import java.util.Map;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.AbstractSimpleIdentifiable;
-import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
-import org.opendaylight.yangtools.rfc8528.data.api.StreamWriterMountPointExtension;
+import org.opendaylight.yangtools.rfc8528.model.api.MountPointLabel;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointChild;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContextFactory;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContextFactory.ContainerName;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointException;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMountPointExtension;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
* YANG Schema Mount-supported data attached to either a {@code list} item or a {@code container}.
*/
@Beta
-public final class MountPointData extends AbstractSimpleIdentifiable<MountPointIdentifier> {
+public final class MountPointData extends AbstractSimpleIdentifiable<MountPointLabel> {
private static final Logger LOG = LoggerFactory.getLogger(MountPointData.class);
private final Map<ContainerName, MountPointChild> yangLib = new EnumMap<>(ContainerName.class);
private MountPointChild schemaMounts;
- MountPointData(final MountPointIdentifier mountId, final MountPointContextFactory contextFactory) {
- super(mountId);
+ MountPointData(final MountPointLabel label, final MountPointContextFactory contextFactory) {
+ super(label);
this.contextFactory = requireNonNull(contextFactory);
}