001 package com.thaiopensource.relaxng.jarv; 002 003 import com.thaiopensource.relaxng.impl.Pattern; 004 import com.thaiopensource.relaxng.impl.PatternValidator; 005 import com.thaiopensource.relaxng.impl.ValidatorPatternBuilder; 006 import com.thaiopensource.xml.sax.CountingErrorHandler; 007 import org.iso_relax.verifier.VerifierHandler; 008 import org.xml.sax.ErrorHandler; 009 010 class VerifierHandlerImpl extends PatternValidator implements VerifierHandler { 011 private boolean complete = false; 012 private final CountingErrorHandler ceh; 013 014 VerifierHandlerImpl(Pattern pattern, ValidatorPatternBuilder builder, CountingErrorHandler ceh) { 015 super(pattern, builder, ceh); 016 this.ceh = ceh; 017 } 018 019 public void endDocument() { 020 super.endDocument(); 021 complete = true; 022 } 023 024 public boolean isValid() throws IllegalStateException { 025 if (!complete) 026 throw new IllegalStateException(); 027 return !ceh.getHadErrorOrFatalError(); 028 } 029 030 void setErrorHandler(ErrorHandler eh) { 031 ceh.setErrorHandler(eh); 032 } 033 034 public void reset() { 035 super.reset(); 036 ceh.reset(); 037 } 038 }