summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorkitfox2007-04-11 23:22:12 +0200
committerkitfox2007-04-11 23:22:12 +0200
commitb0b0b4a54c394b47aa64ce6cef12c5a8ec9e6992 (patch)
treea7a3adc625af71c727af9af758360c14ee14fe1e /src/main
downloadsvg-salamander-core-b0b0b4a54c394b47aa64ce6cef12c5a8ec9e6992.tar.gz
svg-salamander-core-b0b0b4a54c394b47aa64ce6cef12c5a8ec9e6992.tar.xz
svg-salamander-core-b0b0b4a54c394b47aa64ce6cef12c5a8ec9e6992.zip
Added SAX parser
git-svn-id: https://svn.java.net/svn/svgsalamander~svn/trunk/svg-core@7 7dc7fa77-23fb-e6ad-8e2e-c86bd48ed22b
Diffstat (limited to 'src/main')
-rwxr-xr-xsrc/main/java/com/kitfox/salamander/parser/SVGParser.java58
-rwxr-xr-xsrc/main/java/com/kitfox/salamander/parser/SVGParserAntTask.java98
-rwxr-xr-xsrc/main/java/com/kitfox/salamander/parser/SVGParserHandler.java80
3 files changed, 236 insertions, 0 deletions
diff --git a/src/main/java/com/kitfox/salamander/parser/SVGParser.java b/src/main/java/com/kitfox/salamander/parser/SVGParser.java
new file mode 100755
index 0000000..efdf6b9
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/parser/SVGParser.java
@@ -0,0 +1,58 @@
+/*
+ * SVGParser.java
+ *
+ * Created on April 11, 2007, 5:07 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.parser;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.XMLReaderFactory;
+
+/**
+ *
+ * @author kitfox
+ */
+public class SVGParser
+{
+ public static interface SVGParserListener
+ {
+
+ }
+
+ /** Creates a new instance of SVGParser */
+ public SVGParser()
+ {
+ }
+
+ public static void parse(File source, SVGParserListener listener, boolean skipUpToDateFiles)
+ {
+ try
+ {
+ XMLReader parser;
+ parser = XMLReaderFactory.createXMLReader();
+ SVGParserHandler handler = new SVGParserHandler(listener);
+ parser.setContentHandler(handler);
+
+ InputSource is = new InputSource(new FileInputStream(source));
+ parser.parse(is);
+
+ }
+ catch (SAXException ex)
+ {
+ ex.printStackTrace();
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+}
diff --git a/src/main/java/com/kitfox/salamander/parser/SVGParserAntTask.java b/src/main/java/com/kitfox/salamander/parser/SVGParserAntTask.java
new file mode 100755
index 0000000..4c7a251
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/parser/SVGParserAntTask.java
@@ -0,0 +1,98 @@
+/*
+ * GraphicsCodeGenAntTask.java
+ *
+ * Created on March 3, 2007, 9:31 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.parser;
+
+import java.io.File;
+import java.util.ArrayList;
+import javax.imageio.ImageIO;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.FileScanner;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.types.FileSet;
+
+/**
+ * This ant task examines a directory hierarchy containing .xml files and
+ * for the XML files rooted in the GraphicsCodeGen.GRAPHICS_NS namespace,
+ * causes code generation to be run. Task will only update code that is missing
+ * or out of date to minimize processing time.
+ *
+ * <code>
+ * &lt;graphicsCodeGeneration&gt;
+ * &lt;fileset dir="${root.dir}"&gt;
+ * &lt;include name="com/kitfox/monsters/** / *"/&gt;
+ * &lt;/fileset&gt;
+ * &lt;fileset dir="${dir2}"&gt;
+ * &lt;/fileset&gt;
+ * &lt;/graphicsCodeGeneration&gt;
+ * </code>
+ *
+ * @author kitfox
+ */
+public class SVGParserAntTask extends Task
+{
+// Path examinePath;
+ private ArrayList<FileSet> filesets = new ArrayList<FileSet>();
+
+
+ /** Creates a new instance of GraphicsCodeGenAntTask */
+ public SVGParserAntTask()
+ {
+ }
+
+ /**
+ * Adds a set of files.
+ */
+ public void addFileset(FileSet set)
+ {
+ filesets.add(set);
+ }
+
+ /**
+ * The examine path should be a subset of the classpath and include all the
+ * classes that should be examined for possible inclusion in the services list.
+ */
+// public Path createExaminePath() throws BuildException
+// {
+// if (examinePath == null)
+// {
+// examinePath = new Path(getProject());
+// return examinePath;
+// }
+// throw new BuildException("Only one examine path can be set");
+// }
+
+ public void execute() throws BuildException
+ {
+ /*
+ //This is necessary for ImageIO to find all pluggable image readers on the
+ // classpath
+ ImageIO.scanForPlugins();
+
+ for (FileSet fileSet: filesets)
+ {
+ FileScanner scanner = fileSet.getDirectoryScanner(getProject());
+ String[] files = scanner.getIncludedFiles();
+
+ File dir = fileSet.getDir();
+
+ for (String fileName: files)
+ {
+// if (!fileName.getName().endsWith(".xml")) continue;
+ File file = new File(dir, fileName);
+//System.err.println("*****File " + file);
+
+ //Conditionally generate code
+ GraphicsCodeGen.generateCode(file, true);
+ }
+ }
+ */
+ }
+
+}
diff --git a/src/main/java/com/kitfox/salamander/parser/SVGParserHandler.java b/src/main/java/com/kitfox/salamander/parser/SVGParserHandler.java
new file mode 100755
index 0000000..8119984
--- /dev/null
+++ b/src/main/java/com/kitfox/salamander/parser/SVGParserHandler.java
@@ -0,0 +1,80 @@
+/*
+ * GraphicsDocumentHandler.java
+ *
+ * Created on March 3, 2007, 7:49 PM
+ *
+ * To change this template, choose Tools | Template Manager
+ * and open the template in the editor.
+ */
+
+package com.kitfox.salamander.parser;
+
+import com.kitfox.salamander.parser.SVGParser.SVGParserListener;
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+
+
+/**
+ *
+ * @author kitfox
+ */
+public class SVGParserHandler implements ContentHandler
+{
+// LinkedList<CodeGenNode> nodeStack = new LinkedList<CodeGenNode>();
+
+ final SVGParserListener listener;
+
+ /** Creates a new instance of GraphicsDocumentHandler */
+ public SVGParserHandler(SVGParserListener listener)
+ {
+ this.listener = listener;
+ }
+
+ public void setDocumentLocator(Locator locator)
+ {
+ }
+
+ public void startDocument() throws SAXException
+ {
+ }
+
+ public void endDocument() throws SAXException
+ {
+ }
+
+ public void startPrefixMapping(String prefix, String uri) throws SAXException
+ {
+ }
+
+ public void endPrefixMapping(String prefix) throws SAXException
+ {
+ }
+
+ public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException
+ {
+ }
+
+
+ public void endElement(String uri, String localName, String qName) throws SAXException
+ {
+ }
+
+ public void characters(char[] ch, int start, int length) throws SAXException
+ {
+ }
+
+ public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
+ {
+ }
+
+ public void processingInstruction(String target, String data) throws SAXException
+ {
+ }
+
+ public void skippedEntity(String name) throws SAXException
+ {
+ }
+
+}