@Override void apply(DocInitializationCursor c) { c.elementStart(type, attrs); } }
@Override public void elementStart(String type, Attributes attrs) { inner.elementStart(type, attrs); }
@Override void applyData(DocInitializationCursor c) { c.elementStart(tag, attrs); }
@Override boolean build(DocInitializationCursor d, DocOpCursor m) { d.elementStart("body", Attributes.EMPTY_MAP); d.elementStart("line", Attributes.EMPTY_MAP); d.elementEnd(); d.elementEnd(); m.retain(1); m.characters("a"); m.retain(3); return false; }}); }
@Override boolean build(DocInitializationCursor d, DocOpCursor m) { d.elementStart("body", Attributes.EMPTY_MAP); d.elementStart("line", Attributes.EMPTY_MAP); d.elementEnd(); d.elementEnd(); m.retain(1); m.characters("a"); m.retain(3); return false; }}); }
@Override boolean build(DocInitializationCursor d, DocOpCursor m) { d.elementStart("body", Attributes.EMPTY_MAP); d.elementStart("line", Attributes.EMPTY_MAP); d.elementEnd(); d.elementEnd(); m.deleteElementStart("body", Attributes.EMPTY_MAP); m.deleteElementStart("line", Attributes.EMPTY_MAP); m.deleteElementEnd(); m.deleteElementEnd(); return true; }}); // missing required element
@Override public boolean build(DocInitializationCursor d, DocOpCursor m) { d.elementStart("blip", Attributes.EMPTY_MAP); d.elementEnd(); m.retain(3); m.retain(1); return false; } });
@Override public boolean build(DocInitializationCursor d, DocOpCursor m) { d.elementStart("blip", Attributes.EMPTY_MAP); d.elementEnd(); m.retain(3); m.retain(1); return false; } });
@Override boolean build(DocInitializationCursor d, DocOpCursor m) { d.elementStart("body", Attributes.EMPTY_MAP); d.elementStart("line", Attributes.EMPTY_MAP); d.elementEnd(); d.elementEnd(); m.retain(1); m.deleteElementStart("line", Attributes.EMPTY_MAP); m.deleteElementEnd(); m.retain(1); return false; }}); }
@Override boolean build(DocInitializationCursor d, DocOpCursor m) { d.elementStart("body", Attributes.EMPTY_MAP); d.elementStart("line", Attributes.EMPTY_MAP); d.elementEnd(); d.elementEnd(); m.deleteElementStart("body", Attributes.EMPTY_MAP); m.deleteElementStart("line", Attributes.EMPTY_MAP); m.deleteElementEnd(); m.deleteElementEnd(); return true; }}); // missing required element
@Override boolean build(DocInitializationCursor d, DocOpCursor m) { d.elementStart("body", Attributes.EMPTY_MAP); d.elementStart("line", Attributes.EMPTY_MAP); d.elementEnd(); d.elementEnd(); m.retain(1); m.deleteElementStart("line", Attributes.EMPTY_MAP); m.deleteElementEnd(); m.retain(1); return false; }}); }
@Override boolean build(DocInitializationCursor d, DocOpCursor m) { d.elementStart("body", Attributes.EMPTY_MAP); d.elementStart("line", Attributes.EMPTY_MAP); d.elementEnd(); d.elementEnd(); m.retain(3); m.elementStart("line", Attributes.EMPTY_MAP); m.elementEnd(); m.retain(1); return true; }}); // not ok to insert before
@Override boolean build(DocInitializationCursor d, DocOpCursor m) { d.elementStart("body", Attributes.EMPTY_MAP); d.elementStart("line", Attributes.EMPTY_MAP); d.elementEnd(); d.elementEnd(); m.retain(3); m.elementStart("line", Attributes.EMPTY_MAP); m.elementEnd(); m.retain(1); return true; }}); // not ok to insert before
/** * Writes an element's information out to an initialization cursor, optionally recursing * to do likewise for its children. * * @param doc Document the node resides within. * @param element Element containing information to be written. * @param cursor Cursor to write results out to. * @param recurse Whether or not to write children to the operation. */ public static <N, E extends N, T extends N> void buildDomInitializationFromElement( ReadableDocument<N, E, T> doc, E element, DocInitializationCursor cursor, boolean recurse) { cursor.elementStart(doc.getTagName(element), new AttributesImpl(doc.getAttributes(element))); if (recurse) { for (N child = doc.getFirstChild(element); child != null; child = doc.getNextSibling(child)) { buildDomInitializationFromSubtree(doc, child, cursor); } } cursor.elementEnd(); } }