File: ValidatorFilter.java

package info (click to toggle)
libmarc4j-java 2.9.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,908 kB
  • sloc: xml: 109,577; java: 22,102; makefile: 7
file content (189 lines) | stat: -rw-r--r-- 5,507 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
/**
 * Copyright (C) 2002 Bas Peters (mail@bpeters.com)
 *
 * ValidatorFilter is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public 
 * License as published by the Free Software Foundation; either 
 * version 2.1 of the License, or (at your option) any later version.
 *
 * ValidatorFilter is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public 
 * License along with ValidatorFilter; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
import org.xml.sax.SAXException;
import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.Attributes;
import org.xml.sax.ErrorHandler;
import org.xml.sax.helpers.XMLFilterImpl;
import com.thaiopensource.relaxng.ValidatorHandler;

/**
 * <p>Extends <code>XMLFilterImpl</code> to implement 
 * <code>com.thaiopensource.relaxng.ValidatorHandler</code> 
 * as an XML filter.</p>
 *
 * @author <a href="mailto:mail@bpeters.com">Bas Peters</a>
 * @see ValidatorHandler
 * @see XMLFilterImpl
 */
public class ValidatorFilter extends XMLFilterImpl 
    implements ValidatorHandler {

    /** Property for ValidatorHandler */
    private static final String VALIDATOR_PROPERTY = "http://org.marc4j/relaxng/validator";

    /** ValidatorHandler object */
    private ValidatorHandler validatorHandler = null;

    public boolean isComplete() {
	if (validatorHandler != null)
	    return validatorHandler.isComplete();
	else
	    return false;
    }

    public boolean isValidSoFar() {
	if (validatorHandler != null)
	    return validatorHandler.isValidSoFar();
	else
	    return false;
    }

    public void reset() {
	if (validatorHandler != null)
	    validatorHandler.reset();
    }

    /**
     * <p>Sets the property for {@link ValidatorHandler}.</p>
     *
     * @param name the name of the property
     * @param obj the property object
     */
    public void setProperty(String name, Object obj) 
	throws SAXNotRecognizedException, SAXNotSupportedException {
	if (VALIDATOR_PROPERTY.equals(name))
	    this.validatorHandler = (ValidatorHandler)obj;
	else
	    super.setProperty(name, obj);
    }

    public void setErrorHandler(ErrorHandler handler) {
	if (validatorHandler != null) {
	    if (validatorHandler.getErrorHandler() == null)
		validatorHandler.setErrorHandler(handler);
	}
	super.setErrorHandler(handler);
    }

    public ErrorHandler getErrorHandler() {
	return super.getErrorHandler();
    }

    public void notationDecl (String name, String publicId, String systemId)
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.notationDecl(name, publicId, systemId);
	}
	super.notationDecl(name, publicId, systemId);
    }

    public void unparsedEntityDecl (String name, String publicId,
				    String systemId, String notationName)
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.unparsedEntityDecl(name, publicId, systemId,
						notationName);
	}
	super.unparsedEntityDecl(name, publicId, systemId,
				 notationName);
    }

    public void startDocument ()
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.startDocument();
	}
	super.startDocument();
    }

    public void endDocument ()
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.endDocument();
	}
	super.endDocument();

    }

    public void startPrefixMapping (String prefix, String uri)
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.startPrefixMapping(prefix, uri);
	}
	super.startPrefixMapping(prefix, uri);
    }

    public void endPrefixMapping (String prefix)
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.endPrefixMapping(prefix);
	}
	super.endPrefixMapping(prefix);
    }

    public void startElement (String uri, String localName, String qName,
			      Attributes atts)
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.startElement(uri, localName, qName, atts);
	}
	super.startElement(uri, localName, qName, atts);
    }

    public void endElement (String uri, String localName, String qName)
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.endElement(uri, localName, qName);
	}
	super.endElement(uri, localName, qName);
    }

    public void characters (char ch[], int start, int length)
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.characters(ch, start, length);
	}
	super.characters(ch, start, length);
    }

    public void ignorableWhitespace (char ch[], int start, int length)
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.ignorableWhitespace(ch, start, length);
	}
	super.ignorableWhitespace(ch, start, length);
    }

    public void processingInstruction (String target, String data)
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.processingInstruction(target, data);
	}
	super.processingInstruction(target, data);
    }

    public void skippedEntity (String name)
	throws SAXException {
	if (validatorHandler != null) {
	    validatorHandler.skippedEntity(name);
	}
	super.skippedEntity(name);
    }
}