1 package org.relaxng.datatype.helpers;
2 
3 import org.relaxng.datatype.*;
4 
5 /**
6  * Dummy implementation of {@link DatatypeBuilder}.
7  *
8  * This implementation can be used for Datatypes which have no parameters.
9  * Any attempt to add parameters will be rejected.
10  *
11  * <p>
12  * Typical usage would be:
13  * <PRE><XMP>
14  * class MyDatatypeLibrary implements DatatypeLibrary {
15  *     ....
16  *     DatatypeBuilder createDatatypeBuilder( String typeName ) {
17  *         return new ParameterleessDatatypeBuilder(createDatatype(typeName));
18  *     }
19  *     ....
20  * }
21  * </XMP></PRE>
22  *
23  * @author <a href="mailto:kohsuke.kawaguchi@sun.com">Kohsuke KAWAGUCHI</a>
24  */
25 public final class ParameterlessDatatypeBuilder implements DatatypeBuilder {
26 
27         /** This type object is returned for the derive method. */
28         private final Datatype baseType;
29 
ParameterlessDatatypeBuilder( Datatype baseType )30         public ParameterlessDatatypeBuilder( Datatype baseType ) {
31                 this.baseType = baseType;
32         }
33 
addParameter( String name, String strValue, ValidationContext context )34         public void addParameter( String name, String strValue, ValidationContext context )
35                         throws DatatypeException {
36                 throw new DatatypeException();
37         }
38 
createDatatype()39         public Datatype createDatatype() throws DatatypeException {
40                 return baseType;
41         }
42 }
43