1 /* 2 * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Sun designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Sun in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 22 * CA 95054 USA or visit www.sun.com if you need additional information or 23 * have any questions. 24 */ 25 package org.relaxng.datatype.helpers; 26 27 import org.relaxng.datatype; 28 29 /** 30 * Dummy implementation of {@link DatatypeBuilder}. 31 * 32 * This implementation can be used for Datatypes which have no parameters. 33 * Any attempt to add parameters will be rejected. 34 * 35 * <p> 36 * Typical usage would be: 37 * <PRE><XMP> 38 * class MyDatatypeLibrary implements DatatypeLibrary { 39 * .... 40 * DatatypeBuilder createDatatypeBuilder( String typeName ) { 41 * return new ParameterleessDatatypeBuilder(createDatatype(typeName)); 42 * } 43 * .... 44 * } 45 * </XMP></PRE> 46 * 47 * @author <a href="mailto:kohsuke.kawaguchi@sun.com">Kohsuke KAWAGUCHI</a> 48 */ 49 public final class ParameterlessDatatypeBuilder implements DatatypeBuilder { 50 51 /** This type object is returned for the derive method. */ 52 private final Datatype baseType; 53 54 public ParameterlessDatatypeBuilder( Datatype baseType ) { 55 this.baseType = baseType; 56 } 57 58 public void addParameter( String name, String strValue, ValidationContext context ) 59 throws DatatypeException { 60 throw new DatatypeException(); 61 } 62 63 public Datatype createDatatype() throws DatatypeException { 64 return baseType; 65 } 66 }