Source for org.relaxng.datatype.DatatypeBuilder

   1: package org.relaxng.datatype;
   2: 
   3: /**
   4:  * Creates a user-defined type by adding parameters to
   5:  * the pre-defined type.
   6:  * 
   7:  * @author <a href="mailto:jjc@jclark.com">James Clark</a>
   8:  * @author <a href="mailto:kohsuke.kawaguchi@sun.com">Kohsuke KAWAGUCHI</a>
   9:  */
  10: public interface DatatypeBuilder {
  11:     
  12:     /**
  13:      * Adds a new parameter.
  14:      *
  15:      * @param name
  16:      *        The name of the parameter to be added.
  17:      * @param strValue
  18:      *        The raw value of the parameter. Caller may not normalize
  19:      *        this value because any white space is potentially significant.
  20:      * @param context
  21:      *        The context information which can be used by the callee to
  22:      *        acquire additional information. This context object is
  23:      *        valid only during this method call. The callee may not
  24:      *        keep a reference to this object.
  25:      * @exception    DatatypeException
  26:      *        When the given parameter is inappropriate for some reason.
  27:      *        The callee is responsible to recover from this error.
  28:      *        That is, the object should behave as if no such error
  29:      *        was occured.
  30:      */
  31:     void addParameter( String name, String strValue, ValidationContext context )
  32:         throws DatatypeException;
  33:     
  34:     /**
  35:      * Derives a new Datatype from a Datatype by parameters that
  36:      * were already set through the addParameter method.
  37:      * 
  38:      * @exception DatatypeException
  39:      *        DatatypeException must be thrown if the derivation is
  40:      *        somehow invalid. For example, a required parameter is missing,
  41:      *        etc. The exception should contain a diagnosis message
  42:      *        if possible.
  43:      */
  44:     Datatype createDatatype() throws DatatypeException;
  45: }