package org.relaxng.datatype; | |
/** | |
* Datatype streaming validator. | |
* | |
* <p> | |
* The streaming validator is an optional feature that is useful for | |
* certain Datatypes. It allows the caller to incrementally provide | |
* the literal. | |
* | |
* @author <a href="mailto:jjc@jclark.com">James Clark</a> | |
* @author <a href="mailto:kohsuke.kawaguchi@sun.com">Kohsuke KAWAGUCHI</a> | |
*/ | |
public interface DatatypeStreamingValidator { | |
/** | |
* Passes an additional fragment of the literal. | |
* | |
* <p> | |
* The application can call this method several times, then call | |
* the isValid method (or the checkValid method) to check the validity | |
* of the accumulated characters. | |
*/ | |
void addCharacters( char[] buf, int start, int len ); | |
/** | |
* Tells if the accumulated literal is valid with respect to | |
* the underlying Datatype. | |
* | |
* @return | |
* True if it is valid. False if otherwise. | |
*/ | |
boolean isValid(); | |
/** | |
* Similar to the isValid method, but this method throws | |
* Exception (with possibly diagnostic information), instead of | |
* returning false. | |
* | |
* @exception DatatypeException | |
* If the callee supports the diagnosis and the accumulated | |
* literal is invalid, then this exception that possibly | |
* contains diagnosis information is thrown. | |
*/ | |
void checkValid() throws DatatypeException; | |
} |