|
@@ -6,13 +6,6 @@
|
|
|
*/
|
|
*/
|
|
|
package net.ranides.assira.xml.impl;
|
|
package net.ranides.assira.xml.impl;
|
|
|
|
|
|
|
|
-import java.io.File;
|
|
|
|
|
-import java.io.FileOutputStream;
|
|
|
|
|
-import java.io.IOException;
|
|
|
|
|
-import java.io.OutputStream;
|
|
|
|
|
-import java.io.OutputStreamWriter;
|
|
|
|
|
-import java.io.StringWriter;
|
|
|
|
|
-import java.io.Writer;
|
|
|
|
|
import java.util.AbstractList;
|
|
import java.util.AbstractList;
|
|
|
import java.util.Collection;
|
|
import java.util.Collection;
|
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
@@ -20,7 +13,6 @@ import java.util.function.Predicate;
|
|
|
|
|
|
|
|
import javax.xml.parsers.DocumentBuilderFactory;
|
|
import javax.xml.parsers.DocumentBuilderFactory;
|
|
|
import javax.xml.parsers.ParserConfigurationException;
|
|
import javax.xml.parsers.ParserConfigurationException;
|
|
|
-import javax.xml.transform.OutputKeys;
|
|
|
|
|
import javax.xml.transform.Result;
|
|
import javax.xml.transform.Result;
|
|
|
import javax.xml.transform.Transformer;
|
|
import javax.xml.transform.Transformer;
|
|
|
import javax.xml.transform.TransformerConfigurationException;
|
|
import javax.xml.transform.TransformerConfigurationException;
|
|
@@ -29,7 +21,6 @@ import javax.xml.transform.TransformerFactory;
|
|
|
import javax.xml.transform.TransformerFactoryConfigurationError;
|
|
import javax.xml.transform.TransformerFactoryConfigurationError;
|
|
|
import javax.xml.transform.dom.DOMResult;
|
|
import javax.xml.transform.dom.DOMResult;
|
|
|
import javax.xml.transform.dom.DOMSource;
|
|
import javax.xml.transform.dom.DOMSource;
|
|
|
-import javax.xml.transform.stream.StreamResult;
|
|
|
|
|
|
|
|
|
|
import org.w3c.dom.Attr;
|
|
import org.w3c.dom.Attr;
|
|
|
import org.w3c.dom.Document;
|
|
import org.w3c.dom.Document;
|
|
@@ -42,7 +33,6 @@ import net.ranides.assira.collection.query.CQuery;
|
|
|
import net.ranides.assira.collection.query.CQueryBuilder;
|
|
import net.ranides.assira.collection.query.CQueryBuilder;
|
|
|
import net.ranides.assira.generic.ValueUtils;
|
|
import net.ranides.assira.generic.ValueUtils;
|
|
|
import net.ranides.assira.reflection.IClass;
|
|
import net.ranides.assira.reflection.IClass;
|
|
|
-import net.ranides.assira.text.Charsets;
|
|
|
|
|
import net.ranides.assira.xml.*;
|
|
import net.ranides.assira.xml.*;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -338,6 +328,12 @@ public class W3Element extends CElement implements XMLElement {
|
|
|
return this;
|
|
return this;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public XMLElement normalize() {
|
|
|
|
|
+ node.normalize();
|
|
|
|
|
+ return this;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public XMLElement apply(XMLElement transformer) throws XMLException {
|
|
public XMLElement apply(XMLElement transformer) throws XMLException {
|
|
|
return apply($tr(transformer));
|
|
return apply($tr(transformer));
|
|
@@ -370,39 +366,6 @@ public class W3Element extends CElement implements XMLElement {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @Override
|
|
|
|
|
- public String save() {
|
|
|
|
|
- Transformer save = $tr();
|
|
|
|
|
- save.setOutputProperty(OutputKeys.INDENT, "yes");
|
|
|
|
|
- save.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
|
|
|
|
|
-
|
|
|
|
|
- return apply(save, new StreamResult(new StringWriter())).getWriter().toString();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void save(Writer writer) {
|
|
|
|
|
- Transformer save = $tr();
|
|
|
|
|
- save.setOutputProperty(OutputKeys.INDENT, "yes");
|
|
|
|
|
- save.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
|
|
|
|
|
-
|
|
|
|
|
- apply(save, new StreamResult(writer));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void save(OutputStream stream) throws IOException {
|
|
|
|
|
- try(OutputStreamWriter writer = new OutputStreamWriter(stream, Charsets.UTF8)) {
|
|
|
|
|
- save(writer);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void save(File file) throws IOException {
|
|
|
|
|
- try (FileOutputStream stream = new FileOutputStream(file)) {
|
|
|
|
|
- save(stream);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
private static Transformer $tr(XMLElement transformer) {
|
|
private static Transformer $tr(XMLElement transformer) {
|
|
|
try {
|
|
try {
|
|
|
return TransformerFactory.newInstance().newTransformer(new DOMSource(transformer.node()));
|
|
return TransformerFactory.newInstance().newTransformer(new DOMSource(transformer.node()));
|
|
@@ -411,14 +374,6 @@ public class W3Element extends CElement implements XMLElement {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private static Transformer $tr() {
|
|
|
|
|
- try {
|
|
|
|
|
- return TransformerFactory.newInstance().newTransformer();
|
|
|
|
|
- } catch(TransformerFactoryConfigurationError | TransformerConfigurationException cause) {
|
|
|
|
|
- throw new XMLException(cause);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
static XMLElement $element(Node node) {
|
|
static XMLElement $element(Node node) {
|
|
|
return null == node ? null : new W3Element(node);
|
|
return null == node ? null : new W3Element(node);
|
|
|
}
|
|
}
|