001: /*
002: * @(#)XMLFileParser.java
003: *
004: * Copyright (C) 2002-2003 Matt Albrecht
005: * groboclown@users.sourceforge.net
006: * http://groboutils.sourceforge.net
007: *
008: * Part of the GroboUtils package at:
009: * http://groboutils.sourceforge.net
010: *
011: * Permission is hereby granted, free of charge, to any person obtaining a
012: * copy of this software and associated documentation files (the "Software"),
013: * to deal in the Software without restriction, including without limitation
014: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
015: * and/or sell copies of the Software, and to permit persons to whom the
016: * Software is furnished to do so, subject to the following conditions:
017: *
018: * The above copyright notice and this permission notice shall be included in
019: * all copies or substantial portions of the Software.
020: *
021: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
022: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
023: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
024: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
025: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
026: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
027: * DEALINGS IN THE SOFTWARE.
028: */
029: package net.sourceforge.groboutils.pmti.v1.autodoc.v1.xml;
030:
031: import java.io.File;
032: import java.io.Reader;
033: import java.io.FileReader;
034: import java.io.IOException;
035:
036: import java.net.URL;
037:
038: import net.sourceforge.groboutils.pmti.v1.itf.parser.AbstractParser;
039: import net.sourceforge.groboutils.pmti.v1.itf.IIssueRecord;
040: import net.sourceforge.groboutils.pmti.v1.itf.ITestIssueRecord;
041:
042: import net.sourceforge.groboutils.pmti.v1.itf.impl.DefaultIssueRecord;
043: import net.sourceforge.groboutils.pmti.v1.itf.impl.ImmutableTestRecord;
044: import net.sourceforge.groboutils.pmti.v1.itf.impl.DefaultTestIssueRecord;
045:
046: import java.util.Locale;
047:
048: import org.xml.sax.Locator;
049: import org.xml.sax.InputSource;
050: import org.xml.sax.HandlerBase;
051: import org.xml.sax.SAXException;
052: import org.xml.sax.SAXParseException;
053: import org.xml.sax.DocumentHandler;
054: import org.xml.sax.AttributeList;
055: import org.xml.sax.helpers.XMLReaderAdapter;
056: import org.xml.sax.Parser;
057:
058: import org.apache.log4j.Logger;
059:
060: /**
061: * Parses the output of XMLFileServer.
062: *
063: * @author Matt Albrecht <a href="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a>
064: * @since March 17, 2002
065: * @version $Date: 2003/02/10 22:51:57 $
066: */
067: public class XMLFileParser extends AbstractParser {
068: private static final Class THIS_CLASS = XMLFileParser.class;
069: private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger
070: .getLogger(THIS_CLASS);
071:
072: private File file;
073: private Parser parser;
074:
075: public XMLFileParser(File f, Parser p) {
076: if (f == null || !f.exists() || !f.isFile() || !f.canRead()) {
077: throw new IllegalArgumentException("not valid file: " + f);
078: }
079: if (p == null) {
080: throw new IllegalArgumentException("no null SAX parser");
081: }
082:
083: this .parser = p;
084: this .file = f;
085: }
086:
087: protected void findRecords() {
088: try {
089: FileReader fr = new FileReader(this .file);
090: try {
091: InputSource source = new InputSource(fr);
092: source.setSystemId((new URL("file:"
093: + this .file.getAbsolutePath())).toString());
094: } finally {
095: fr.close();
096: }
097: } catch (IOException ioe) {
098: LOG.warn("Error accessing file: " + this .file, ioe);
099: }
100: }
101:
102: //protected class
103: }
|