-
- @SuppressWarnings("rawtypes")
- private NormalizedNodeContainerBuilder getCurrent() {
- return builders.peek();
+ /**
+ * Creates a {@link NormalizedNodeStreamWriter} which creates one instance of top-level {@link NormalizedNode}
+ * (type of NormalizedNode) is determined by first start event.
+ *
+ * <p>
+ * Result is built when {@link #endNode()} associated with that start event is emitted.
+ *
+ * <p>
+ * Writer properly creates also nested {@link NormalizedNode} instances, if their are supported inside the scope
+ * of the first event.
+ *
+ * <p>
+ * This method is useful for clients, which knows there will be one top-level node written, but does not know which
+ * type of {@link NormalizedNode} will be written.
+ *
+ * @param result {@link NormalizedNodeResult} object which will hold result value.
+ * @return {@link NormalizedNodeStreamWriter} which will write item to supplied result holder.
+ */
+ public static @NonNull NormalizedNodeStreamWriter from(final NormalizedNodeMetadataResult result) {
+ return new ImmutableMetadataNormalizedNodeStreamWriter(result);