Merge branch 'master' into lttng-kepler
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core / src / org / eclipse / linuxtools / tmf / core / filter / xml / TmfFilterXMLWriter.java
index 5a5fca5db0cc57b120ba3fe15eb2ec7bbc15fdd3..264a96082e91049c0ddab3893909d2e97a3f4fbe 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2010 Ericsson\r
- *\r
- * All rights reserved. This program and the accompanying materials are\r
- * made available under the terms of the Eclipse Public License v1.0 which\r
- * accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *   Yuriy Vashchuk (yvashchuk@gmail.com) - Initial API and implementation\r
- *******************************************************************************/\r
-\r
-package org.eclipse.linuxtools.tmf.core.filter.xml;\r
-\r
-import java.io.File;\r
-\r
-import javax.xml.parsers.DocumentBuilder;\r
-import javax.xml.parsers.DocumentBuilderFactory;\r
-import javax.xml.parsers.ParserConfigurationException;\r
-import javax.xml.transform.Transformer;\r
-import javax.xml.transform.TransformerConfigurationException;\r
-import javax.xml.transform.TransformerException;\r
-import javax.xml.transform.TransformerFactory;\r
-import javax.xml.transform.dom.DOMSource;\r
-import javax.xml.transform.stream.StreamResult;\r
-\r
-import org.eclipse.linuxtools.tmf.core.filter.model.ITmfFilterTreeNode;\r
-import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterAndNode;\r
-import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterCompareNode;\r
-import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterContainsNode;\r
-import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterEqualsNode;\r
-import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterEventTypeNode;\r
-import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterMatchesNode;\r
-import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterNode;\r
-import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterOrNode;\r
-import org.w3c.dom.Document;\r
-import org.w3c.dom.Element;\r
-\r
-/**\r
- * The SAX based XML writer\r
- *\r
- * @version 1.0\r
- * @author Yuriy Vashchuk\r
- * @author Patrick Tasse\r
- */\r
-public class TmfFilterXMLWriter {\r
-\r
-       private Document document = null;\r
-\r
-       /**\r
-        * The XMLParser constructor\r
-        *\r
-     * @param root The tree root\r
-        * @throws ParserConfigurationException if a DocumentBuilder\r
-     *   cannot be created which satisfies the configuration requested.\r
-        */\r
-       public TmfFilterXMLWriter(final ITmfFilterTreeNode root) throws ParserConfigurationException {\r
-               DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();\r
-               DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();\r
-               document = documentBuilder.newDocument();\r
-\r
-               Element rootElement = document.createElement(root.getNodeName());\r
-               document.appendChild(rootElement);\r
-\r
-               for (ITmfFilterTreeNode node : root.getChildren()) {\r
-                       buildXMLTree(document, node, rootElement);\r
-               }\r
-       }\r
-\r
-       /**\r
-        * The Tree to XML parser\r
-        *\r
-        * @param document The XML document\r
-        * @param treenode The node to write\r
-        * @param parentElement The XML element of the parent\r
-        */\r
-       public static void buildXMLTree(final Document document, final ITmfFilterTreeNode treenode, Element parentElement) {\r
-               Element element = document.createElement(treenode.getNodeName());\r
-\r
-               if (treenode instanceof TmfFilterNode) {\r
-\r
-                       TmfFilterNode node = (TmfFilterNode) treenode;\r
-                       element.setAttribute(TmfFilterNode.NAME_ATTR, node.getFilterName());\r
-\r
-               } else if (treenode instanceof TmfFilterEventTypeNode) {\r
-\r
-                       TmfFilterEventTypeNode node = (TmfFilterEventTypeNode) treenode;\r
-                       element.setAttribute(TmfFilterEventTypeNode.TYPE_ATTR, node.getEventType());\r
-                       element.setAttribute(TmfFilterEventTypeNode.NAME_ATTR, node.getName());\r
-\r
-               } else if (treenode instanceof TmfFilterAndNode) {\r
-\r
-                       TmfFilterAndNode node = (TmfFilterAndNode) treenode;\r
-                       element.setAttribute(TmfFilterAndNode.NOT_ATTR, Boolean.toString(node.isNot()));\r
-\r
-               } else if (treenode instanceof TmfFilterOrNode) {\r
-\r
-                       TmfFilterOrNode node = (TmfFilterOrNode) treenode;\r
-                       element.setAttribute(TmfFilterOrNode.NOT_ATTR, Boolean.toString(node.isNot()));\r
-\r
-               } else if (treenode instanceof TmfFilterContainsNode) {\r
-\r
-                       TmfFilterContainsNode node = (TmfFilterContainsNode) treenode;\r
-                       element.setAttribute(TmfFilterContainsNode.NOT_ATTR, Boolean.toString(node.isNot()));\r
-                       element.setAttribute(TmfFilterContainsNode.FIELD_ATTR, node.getField());\r
-                       element.setAttribute(TmfFilterContainsNode.VALUE_ATTR, node.getValue());\r
-                       element.setAttribute(TmfFilterContainsNode.IGNORECASE_ATTR, Boolean.toString(node.isIgnoreCase()));\r
-\r
-               } else if (treenode instanceof TmfFilterEqualsNode) {\r
-\r
-                       TmfFilterEqualsNode node = (TmfFilterEqualsNode) treenode;\r
-                       element.setAttribute(TmfFilterEqualsNode.NOT_ATTR, Boolean.toString(node.isNot()));\r
-                       element.setAttribute(TmfFilterEqualsNode.FIELD_ATTR, node.getField());\r
-                       element.setAttribute(TmfFilterEqualsNode.VALUE_ATTR, node.getValue());\r
-                       element.setAttribute(TmfFilterEqualsNode.IGNORECASE_ATTR, Boolean.toString(node.isIgnoreCase()));\r
-\r
-               } else if (treenode instanceof TmfFilterMatchesNode) {\r
-\r
-                       TmfFilterMatchesNode node = (TmfFilterMatchesNode) treenode;\r
-                       element.setAttribute(TmfFilterMatchesNode.NOT_ATTR, Boolean.toString(node.isNot()));\r
-                       element.setAttribute(TmfFilterMatchesNode.FIELD_ATTR, node.getField());\r
-                       element.setAttribute(TmfFilterMatchesNode.REGEX_ATTR, node.getRegex());\r
-\r
-               } else if (treenode instanceof TmfFilterCompareNode) {\r
-\r
-                       TmfFilterCompareNode node = (TmfFilterCompareNode) treenode;\r
-                       element.setAttribute(TmfFilterCompareNode.NOT_ATTR, Boolean.toString(node.isNot()));\r
-                       element.setAttribute(TmfFilterCompareNode.FIELD_ATTR, node.getField());\r
-                       element.setAttribute(TmfFilterCompareNode.RESULT_ATTR, Integer.toString(node.getResult()));\r
-                       element.setAttribute(TmfFilterCompareNode.TYPE_ATTR, node.getType().toString());\r
-                       element.setAttribute(TmfFilterCompareNode.VALUE_ATTR, node.getValue());\r
-\r
-               }\r
-\r
-               parentElement.appendChild(element);\r
-\r
-               for (int i = 0; i < treenode.getChildrenCount(); i++) {\r
-                       buildXMLTree(document, treenode.getChild(i), element);\r
-               }\r
-       }\r
-\r
-       /**\r
-        * Save the tree\r
-        *\r
-        * @param uri The new Filter XML path\r
-        */\r
-       public void saveTree(final String uri) {\r
-               TransformerFactory transformerFactory = TransformerFactory.newInstance();\r
-\r
-               try {\r
-                       Transformer transformer = transformerFactory.newTransformer();\r
-               DOMSource source = new DOMSource(document);\r
-               StreamResult result =  new StreamResult(new File(uri));\r
-                       transformer.transform(source, result);\r
-               } catch (TransformerConfigurationException e) {\r
-                       e.printStackTrace();\r
-               } catch (TransformerException e) {\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2010 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *   Yuriy Vashchuk (yvashchuk@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.linuxtools.tmf.core.filter.xml;
+
+import java.io.File;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.eclipse.linuxtools.tmf.core.filter.model.ITmfFilterTreeNode;
+import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterAndNode;
+import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterCompareNode;
+import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterContainsNode;
+import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterEqualsNode;
+import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterEventTypeNode;
+import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterMatchesNode;
+import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterNode;
+import org.eclipse.linuxtools.tmf.core.filter.model.TmfFilterOrNode;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * The SAX based XML writer
+ *
+ * @version 1.0
+ * @author Yuriy Vashchuk
+ * @author Patrick Tasse
+ */
+public class TmfFilterXMLWriter {
+
+       private Document document = null;
+
+       /**
+        * The XMLParser constructor
+        *
+     * @param root The tree root
+        * @throws ParserConfigurationException if a DocumentBuilder
+     *   cannot be created which satisfies the configuration requested.
+        */
+       public TmfFilterXMLWriter(final ITmfFilterTreeNode root) throws ParserConfigurationException {
+               DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+               DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
+               document = documentBuilder.newDocument();
+
+               Element rootElement = document.createElement(root.getNodeName());
+               document.appendChild(rootElement);
+
+               for (ITmfFilterTreeNode node : root.getChildren()) {
+                       buildXMLTree(document, node, rootElement);
+               }
+       }
+
+       /**
+        * The Tree to XML parser
+        *
+        * @param document The XML document
+        * @param treenode The node to write
+        * @param parentElement The XML element of the parent
+        */
+       public static void buildXMLTree(final Document document, final ITmfFilterTreeNode treenode, Element parentElement) {
+               Element element = document.createElement(treenode.getNodeName());
+
+               if (treenode instanceof TmfFilterNode) {
+
+                       TmfFilterNode node = (TmfFilterNode) treenode;
+                       element.setAttribute(TmfFilterNode.NAME_ATTR, node.getFilterName());
+
+               } else if (treenode instanceof TmfFilterEventTypeNode) {
+
+                       TmfFilterEventTypeNode node = (TmfFilterEventTypeNode) treenode;
+                       element.setAttribute(TmfFilterEventTypeNode.TYPE_ATTR, node.getEventType());
+                       element.setAttribute(TmfFilterEventTypeNode.NAME_ATTR, node.getName());
+
+               } else if (treenode instanceof TmfFilterAndNode) {
+
+                       TmfFilterAndNode node = (TmfFilterAndNode) treenode;
+                       element.setAttribute(TmfFilterAndNode.NOT_ATTR, Boolean.toString(node.isNot()));
+
+               } else if (treenode instanceof TmfFilterOrNode) {
+
+                       TmfFilterOrNode node = (TmfFilterOrNode) treenode;
+                       element.setAttribute(TmfFilterOrNode.NOT_ATTR, Boolean.toString(node.isNot()));
+
+               } else if (treenode instanceof TmfFilterContainsNode) {
+
+                       TmfFilterContainsNode node = (TmfFilterContainsNode) treenode;
+                       element.setAttribute(TmfFilterContainsNode.NOT_ATTR, Boolean.toString(node.isNot()));
+                       element.setAttribute(TmfFilterContainsNode.FIELD_ATTR, node.getField());
+                       element.setAttribute(TmfFilterContainsNode.VALUE_ATTR, node.getValue());
+                       element.setAttribute(TmfFilterContainsNode.IGNORECASE_ATTR, Boolean.toString(node.isIgnoreCase()));
+
+               } else if (treenode instanceof TmfFilterEqualsNode) {
+
+                       TmfFilterEqualsNode node = (TmfFilterEqualsNode) treenode;
+                       element.setAttribute(TmfFilterEqualsNode.NOT_ATTR, Boolean.toString(node.isNot()));
+                       element.setAttribute(TmfFilterEqualsNode.FIELD_ATTR, node.getField());
+                       element.setAttribute(TmfFilterEqualsNode.VALUE_ATTR, node.getValue());
+                       element.setAttribute(TmfFilterEqualsNode.IGNORECASE_ATTR, Boolean.toString(node.isIgnoreCase()));
+
+               } else if (treenode instanceof TmfFilterMatchesNode) {
+
+                       TmfFilterMatchesNode node = (TmfFilterMatchesNode) treenode;
+                       element.setAttribute(TmfFilterMatchesNode.NOT_ATTR, Boolean.toString(node.isNot()));
+                       element.setAttribute(TmfFilterMatchesNode.FIELD_ATTR, node.getField());
+                       element.setAttribute(TmfFilterMatchesNode.REGEX_ATTR, node.getRegex());
+
+               } else if (treenode instanceof TmfFilterCompareNode) {
+
+                       TmfFilterCompareNode node = (TmfFilterCompareNode) treenode;
+                       element.setAttribute(TmfFilterCompareNode.NOT_ATTR, Boolean.toString(node.isNot()));
+                       element.setAttribute(TmfFilterCompareNode.FIELD_ATTR, node.getField());
+                       element.setAttribute(TmfFilterCompareNode.RESULT_ATTR, Integer.toString(node.getResult()));
+                       element.setAttribute(TmfFilterCompareNode.TYPE_ATTR, node.getType().toString());
+                       element.setAttribute(TmfFilterCompareNode.VALUE_ATTR, node.getValue());
+
+               }
+
+               parentElement.appendChild(element);
+
+               for (int i = 0; i < treenode.getChildrenCount(); i++) {
+                       buildXMLTree(document, treenode.getChild(i), element);
+               }
+       }
+
+       /**
+        * Save the tree
+        *
+        * @param uri The new Filter XML path
+        */
+       public void saveTree(final String uri) {
+               TransformerFactory transformerFactory = TransformerFactory.newInstance();
+
+               try {
+                       Transformer transformer = transformerFactory.newTransformer();
+               DOMSource source = new DOMSource(document);
+               StreamResult result =  new StreamResult(new File(uri));
+                       transformer.transform(source, result);
+               } catch (TransformerConfigurationException e) {
+                       e.printStackTrace();
+               } catch (TransformerException e) {
+                       e.printStackTrace();
+               }
+       }
+
+}
This page took 0.034123 seconds and 5 git commands to generate.