package com.sun.msv.reader.trex.ng.comp; import com.sun.msv.grammar.relaxng.RELAXNGGrammar; import org.xml.sax.Locator; abstract class CompatibilityChecker { protected final RELAXNGCompReader reader; protected final RELAXNGGrammar grammar; protected CompatibilityChecker( RELAXNGCompReader _reader ) { this.reader = _reader; this.grammar = (RELAXNGGrammar)_reader.getGrammar(); } protected abstract void setCompatibility( boolean val ); /** * reports the compatibility related error. * * <p> * Since the processor is required to validate a schema even if * it's not compatible with some of the features, we cannot report * those errors as real "errors". */ protected void reportCompError( Locator[] locs, String propertyName ) { // TODO: it maybe useful to implement a switch // that makes those warnings as errors. reportCompError(locs,propertyName,null); } protected void reportCompError( Locator[] locs, String propertyName, Object[] args ) { setCompatibility(false); reader.reportWarning(propertyName,args,locs); } }