001 package com.thaiopensource.relaxng.jarv;
002
003 import com.thaiopensource.relaxng.impl.Pattern;
004 import com.thaiopensource.relaxng.impl.ValidatorPatternBuilder;
005 import com.thaiopensource.xml.sax.CountingErrorHandler;
006 import org.iso_relax.verifier.VerifierConfigurationException;
007 import org.iso_relax.verifier.VerifierHandler;
008 import org.xml.sax.ErrorHandler;
009 import org.xml.sax.SAXException;
010
011 class VerifierImpl extends org.iso_relax.verifier.impl.VerifierImpl {
012 private final VerifierHandlerImpl vhi;
013 private boolean needReset = false;
014
015 VerifierImpl(Pattern start, ValidatorPatternBuilder builder) throws VerifierConfigurationException {
016 vhi = new VerifierHandlerImpl(start, builder,
017 new CountingErrorHandler(errorHandler));
018 reader.setDTDHandler(vhi);
019 }
020
021 public VerifierHandler getVerifierHandler() throws SAXException {
022 if (needReset)
023 vhi.reset();
024 else
025 needReset = true;
026 return vhi;
027 }
028
029 public void setErrorHandler(ErrorHandler handler) {
030 vhi.setErrorHandler(handler);
031 super.setErrorHandler(handler);
032 }
033
034 }