Add ReusableImmutableNormalizedNodeStreamWriter
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / ImmutableNormalizedNodeStreamWriter.java
index 268c5bf650036f20eb289c948f23ff4fb23dfe61..e0a22c87e4962bf2eb5f8b403dcdd8b97c9608bf 100644 (file)
@@ -12,7 +12,6 @@ import static com.google.common.base.Preconditions.checkState;
 import static java.util.Objects.requireNonNull;
 
 import java.util.ArrayDeque;
-import java.util.Collection;
 import java.util.Deque;
 import javax.xml.transform.dom.DOMSource;
 import org.eclipse.jdt.annotation.NonNull;
@@ -40,7 +39,6 @@ import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNo
 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.api.ListNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeContainerBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAnyXmlNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAugmentationNodeBuilder;
@@ -321,47 +319,6 @@ public class ImmutableNormalizedNodeStreamWriter implements NormalizedNodeStream
             "Invalid nesting of data.");
     }
 
-    @SuppressWarnings("rawtypes")
-    protected static final class NormalizedNodeResultBuilder implements NormalizedNodeContainerBuilder {
-
-        private final NormalizedNodeResult result;
-
-        public NormalizedNodeResultBuilder(final NormalizedNodeResult result) {
-            this.result = result;
-        }
-
-        @Override
-        public NormalizedNodeBuilder withValue(final Object value) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public NormalizedNodeContainerBuilder withValue(final Collection value) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public NormalizedNode build() {
-            throw new IllegalStateException("Can not close NormalizedNodeResult");
-        }
-
-        @Override
-        public NormalizedNodeContainerBuilder withNodeIdentifier(final PathArgument nodeIdentifier) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public NormalizedNodeContainerBuilder addChild(final NormalizedNode child) {
-            result.setResult(child);
-            return this;
-        }
-
-        @Override
-        public NormalizedNodeContainerBuilder removeChild(final PathArgument key) {
-            throw new UnsupportedOperationException();
-        }
-    }
-
     @Override
     public void flush() {
         // no-op
@@ -376,4 +333,10 @@ public class ImmutableNormalizedNodeStreamWriter implements NormalizedNodeStream
     public void nextDataSchemaNode(final DataSchemaNode schema) {
         nextSchema = requireNonNull(schema);
     }
+
+    final void reset(final NormalizedNodeResultBuilder builder) {
+        nextSchema = null;
+        builders.clear();
+        builders.push(builder);
+    }
 }