001 package org.relaxng.datatype.helpers; 002 003 import org.relaxng.datatype.*; 004 005 /** 006 * Dummy implementation of {@link DatatypeBuilder}. 007 * 008 * This implementation can be used for Datatypes which have no parameters. 009 * Any attempt to add parameters will be rejected. 010 * 011 * <p> 012 * Typical usage would be: 013 * <PRE><XMP> 014 * class MyDatatypeLibrary implements DatatypeLibrary { 015 * .... 016 * DatatypeBuilder createDatatypeBuilder( String typeName ) { 017 * return new ParameterleessDatatypeBuilder(createDatatype(typeName)); 018 * } 019 * .... 020 * } 021 * </XMP></PRE> 022 * 023 * @author <a href="mailto:kohsuke.kawaguchi@sun.com">Kohsuke KAWAGUCHI</a> 024 */ 025 public final class ParameterlessDatatypeBuilder implements DatatypeBuilder { 026 027 /** This type object is returned for the derive method. */ 028 private final Datatype baseType; 029 030 public ParameterlessDatatypeBuilder( Datatype baseType ) { 031 this.baseType = baseType; 032 } 033 034 public void addParameter( String name, String strValue, ValidationContext context ) 035 throws DatatypeException { 036 throw new DatatypeException(); 037 } 038 039 public Datatype createDatatype() throws DatatypeException { 040 return baseType; 041 } 042 }