private static NormalizedNodeDataOutput streamWriter(DataOutput out) { NormalizedNodeDataOutput streamWriter = REUSABLE_WRITER_TL.get(); if (streamWriter == null) { streamWriter = NormalizedNodeInputOutput.newDataOutput(out); } return streamWriter; }
private static NormalizedNodeDataOutput streamWriter(DataOutput out) throws IOException { NormalizedNodeDataOutput streamWriter = REUSABLE_WRITER_TL.get(); if(streamWriter == null) { streamWriter = NormalizedNodeInputOutput.newDataOutput(out); } return streamWriter; }
@Override public void writeExternal(final ObjectOutput out) throws IOException { super.writeExternal(out); if (data.isPresent()) { out.writeBoolean(true); try (NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out)) { nnout.writeNormalizedNode(data.get()); } } else { out.writeBoolean(false); } }
@Override public void writeExternal(final ObjectOutput out) throws IOException { super.writeExternal(out); if (data.isPresent()) { out.writeBoolean(true); try (NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out)) { nnout.writeNormalizedNode(data.get()); } } else { out.writeBoolean(false); } out.writeObject(data); }
@Override public final void writeExternal(final ObjectOutput out) throws IOException { super.writeExternal(out); try (NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out)) { nnout.writeYangInstanceIdentifier(path); } }
@Override public void writeExternal(final ObjectOutput out) throws IOException { super.writeExternal(out); out.writeByte(PersistenceProtocol.byteValue(protocol.orElse(null))); out.writeInt(modifications.size()); if (!modifications.isEmpty()) { try (NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out)) { for (TransactionModification op : modifications) { op.writeTo(nnout); } } } }
@Override public void writeExternal(final ObjectOutput out) throws IOException { super.writeExternal(out); out.writeByte(PersistenceProtocol.byteValue(protocol.orElse(null))); out.writeInt(modifications.size()); if (!modifications.isEmpty()) { try (NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out)) { for (TransactionModification op : modifications) { op.writeTo(nnout); } } } }
@Override public void writeExternal(ObjectOutput out) throws IOException { super.writeExternal(out); out.writeInt(modifications.size()); if(modifications.size() > 1) { SerializationUtils.REUSABLE_WRITER_TL.set(NormalizedNodeInputOutput.newDataOutput(out)); } try { for(Modification mod: modifications) { out.writeByte(mod.getType()); mod.writeExternal(out); } } finally { SerializationUtils.REUSABLE_WRITER_TL.remove(); } }
@Override public final void writeExternal(final ObjectOutput out) throws IOException { super.writeExternal(out); try (NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out)) { nnout.writeYangInstanceIdentifier(path); } }
@Override public void writeExternal(final ObjectOutput out) throws IOException { final NormalizedNodeDataOutput dataOutput = NormalizedNodeInputOutput.newDataOutput(out); final NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter((NormalizedNodeStreamWriter) dataOutput); dataOutput.writeYangInstanceIdentifier(identifier); normalizedNodeWriter.write(node); }
@Override public void writeExternal(final ObjectOutput out) throws IOException { out.writeObject(Serialization.serializedActorPath(rpcInvoker)); final NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out); nnout.writeInt(rpcs.size()); for (DOMRpcIdentifier id : rpcs) { nnout.writeSchemaPath(id.getType()); nnout.writeYangInstanceIdentifier(id.getContextReference()); } }
out.writeShort(DataStoreVersions.CURRENT_VERSION); NormalizedNodeDataOutput streamWriter = NormalizedNodeInputOutput.newDataOutput(out);
@Test public void testSchemaPathSerialization() throws Exception { final SchemaPath expected = SchemaPath.create(true, TestModel.ANY_XML_QNAME); ByteArrayOutputStream bos = new ByteArrayOutputStream(); NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(ByteStreams.newDataOutput(bos)); nnout.writeSchemaPath(expected); NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput( bos.toByteArray())); SchemaPath actual = nnin.readSchemaPath(); assertEquals(expected, actual); }
@Test public void testAnyXmlStreaming() throws Exception { String xml = "<foo xmlns=\"http://www.w3.org/TR/html4/\" x=\"123\"><bar>one</bar><bar>two</bar></foo>"; final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); Node xmlNode = factory.newDocumentBuilder().parse( new InputSource(new StringReader(xml))).getDocumentElement(); assertEquals("http://www.w3.org/TR/html4/", xmlNode.getNamespaceURI()); NormalizedNode<?, ?> anyXmlContainer = ImmutableContainerNodeBuilder.create().withNodeIdentifier( new YangInstanceIdentifier.NodeIdentifier(TestModel.TEST_QNAME)).withChild( Builders.anyXmlBuilder().withNodeIdentifier(new NodeIdentifier(TestModel.ANY_XML_QNAME)) .withValue(new DOMSource(xmlNode)).build()).build(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(ByteStreams.newDataOutput(bos)); nnout.writeNormalizedNode(anyXmlContainer); NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput( bos.toByteArray())); ContainerNode deserialized = (ContainerNode)nnin.readNormalizedNode(); Optional<DataContainerChild<? extends PathArgument, ?>> child = deserialized.getChild(new NodeIdentifier(TestModel.ANY_XML_QNAME)); assertEquals("AnyXml child present", true, child.isPresent()); StreamResult xmlOutput = new StreamResult(new StringWriter()); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); transformer.transform(((AnyXmlNode)child.get()).getValue(), xmlOutput); assertEquals("XML", xml, xmlOutput.getWriter().toString()); assertEquals("http://www.w3.org/TR/html4/", ((AnyXmlNode)child.get()).getValue().getNode().getNamespaceURI()); }
@Test public void testYangInstanceIdentifierStreaming() throws IOException { YangInstanceIdentifier path = YangInstanceIdentifier.builder(TestModel.TEST_PATH) .node(TestModel.OUTER_LIST_QNAME).nodeWithKey( TestModel.INNER_LIST_QNAME, TestModel.ID_QNAME, 10).build(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(ByteStreams.newDataOutput(bos)); nnout.writeYangInstanceIdentifier(path); NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput( bos.toByteArray())); YangInstanceIdentifier newPath = nnin.readYangInstanceIdentifier(); Assert.assertEquals(path, newPath); }
public static void writeDataTreeCandidate(final DataOutput out, DataTreeCandidate candidate) throws IOException { try (final NormalizedNodeDataOutput writer = NormalizedNodeInputOutput.newDataOutput(out)) { writer.writeYangInstanceIdentifier(candidate.getRootPath());
@Test public void testNormalizedNodeStreaming() throws IOException { ByteArrayOutputStream bos = new ByteArrayOutputStream(); NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(ByteStreams.newDataOutput(bos)); NormalizedNode<?, ?> testContainer = createTestContainer(); nnout.writeNormalizedNode(testContainer); QName toaster = QName.create("http://netconfcentral.org/ns/toaster","2009-11-20","toaster"); QName darknessFactor = QName.create("http://netconfcentral.org/ns/toaster","2009-11-20","darknessFactor"); QName description = QName.create("http://netconfcentral.org/ns/toaster","2009-11-20","description"); ContainerNode toasterNode = Builders.containerBuilder().withNodeIdentifier(new NodeIdentifier(toaster)) .withChild(ImmutableNodes.leafNode(darknessFactor, "1000")) .withChild(ImmutableNodes.leafNode(description, largeString(20))).build(); ContainerNode toasterContainer = Builders.containerBuilder() .withNodeIdentifier(new NodeIdentifier(SchemaContext.NAME)).withChild(toasterNode).build(); nnout.writeNormalizedNode(toasterContainer); NormalizedNodeDataInput nnin = NormalizedNodeInputOutput.newDataInput(ByteStreams.newDataInput( bos.toByteArray())); NormalizedNode<?,?> node = nnin.readNormalizedNode(); Assert.assertEquals(testContainer, node); node = nnin.readNormalizedNode(); Assert.assertEquals(toasterContainer, node); }