@Override public void startDocument() throws SAXException { LOGGER.trace("startDocument()"); document = new Document(); currentParent = document; resetActiveText(); }
@Override public Document clone(boolean recurse) { final Document result = new Document(); if (recurse) { for (final Child child : getChildren()) { result.addChild(child.clone(true)); } } return result; }
@Test public void testCanAddChild() { final Document doc = new Document(); assertFalse(doc.canAddChild(null)); final Element root = doc.addElement("root"); assertFalse(doc.canAddChild(root)); }
@Test public void testContructors() { final Document doc = new Document(); assertEquals(doc, doc.getDocument()); assertEquals(null, doc.getRootElement()); assertEquals(0, doc.getChildrenCount()); assertTrue(doc.deepEquals(doc)); assertEquals(null, doc.getLastChild()); }
public static void main(String[] args) throws IOException { LOGGER.info("Start " + XmlDataWriterDemo.class.getSimpleName()); Debug.printClassPath(); for (final URL url : Resources.getResources("log4j2.xml")) { LOGGER.info(" " + url); } final Document doc = new Document(); final Element root = new Element("root"); doc.addComment("Hello"); doc.addChild(root); doc.addComment("Hello"); root.addAttribute("att1", "value1"); final Element child = new Element("child"); child.addAttribute("att1", "value1"); root.addChild(child); doc.removeChildren(); doc.addComment("Hello"); doc.addChild(root); doc.addComment("Hello"); try (final XmlDataWriter writer = new XmlDataWriter(NonCloseableOutputStream.NON_CLOSABLE_SYSTEM_OUT)) { writer.getXmlWriter().setEnabled(XmlWriter.Feature.PRETTY_PRINT, true); writer.write(doc); writer.flush(); } } }
@Test public void testGetRootElement() { assertEquals(null, Document.getRootElement(null)); final Document doc = new Document(); assertEquals(null, doc.getRootElement()); assertEquals(null, Document.getRootElement(doc)); final Element root = new Element(NAME); doc.addChild(root); assertEquals(root, doc.getRootElement()); assertEquals(root, doc.getRootElement()); assertEquals(root, Document.getRootElement(doc)); }
@Test public void testRoot() { final Document doc = new Document(); assertEquals(null, doc.getRootElement()); final Element root = new Element("root"); assertEquals(null, root.getParent()); assertTrue(doc.canAddChild(root)); doc.addChild(root); assertFalse(doc.canAddChild(root)); assertEquals(root, doc.getRootElement()); root.setParent(null); assertEquals(null, root.getParent()); assertEquals(null, doc.getRootElement()); } }
@Test public void testDeepEquals() { final Document doc1 = new Document(); final Document doc2 = new Document(); assertTrue(doc1.deepEquals(doc2)); doc1.addChild(new Comment()); assertFalse(doc1.deepEquals(doc2)); doc2.addChild(new Comment()); assertTrue(doc1.deepEquals(doc2)); doc1.addChild(new Element(NAME)); assertFalse(doc1.deepEquals(doc2)); doc2.addChild(new Element(NAME)); assertTrue(doc1.deepEquals(doc2)); ((Element) doc1.getLastChild()).addAttribute(NAME, VALUE); assertFalse(doc1.deepEquals(doc2)); ((Element) doc2.getLastChild()).addAttribute(NAME, VALUE); assertTrue(doc1.deepEquals(doc2)); final Document doc3 = doc1.clone(true); assertTrue(doc1.deepEquals(doc3)); doc3.removeChildren(); assertEquals(0, doc3.getChildrenCount()); }
@Test public void testConstructors2() { final Document doc = new Document(); final Text x = new Text(doc); assertEquals(NodeType.TEXT, x.getType()); assertEquals(doc, x.getParent()); assertEquals("", x.getContent()); x.setContent(HELLO); assertEquals(HELLO, x.getContent()); x.clearContent(); assertEquals("", x.getContent()); x.appendContent(HELLO); assertEquals(HELLO, x.getContent()); x.appendContent(null); assertEquals(HELLO, x.getContent()); assertEquals(null, x.getRootElement()); assertEquals(doc, x.getDocument()); assertEquals(x, x.getRootChild()); }
@Test public void testConstructors2() { final Document doc = new Document(); final Comment x = new Comment(doc); assertEquals(NodeType.COMMENT, x.getType()); assertEquals(doc, x.getParent()); assertEquals("", x.getContent()); x.setContent(HELLO); assertEquals(HELLO, x.getContent()); x.clearContent(); assertEquals("", x.getContent()); x.appendContent(HELLO); assertEquals(HELLO, x.getContent()); x.appendContent(null); assertEquals(HELLO, x.getContent()); assertEquals(null, x.getRootElement()); assertEquals(doc, x.getDocument()); assertEquals(x, x.getRootChild()); }