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 }