1 /* 2 * Copyright (c) 1998-2006 Caucho Technology -- all rights reserved 3 * 4 * This file is part of Resin(R) Open Source 5 * 6 * Each copy or derived work must preserve the copyright notice and this 7 * notice unmodified. 8 * 9 * Resin Open Source is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * Resin Open Source is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty 17 * of NON-INFRINGEMENT. See the GNU General Public License for more 18 * details. 19 * 20 * You should have received a copy of the GNU General Public License 21 * along with Resin Open Source; if not, write to the 22 * 23 * Free Software Foundation, Inc. 24 * 59 Temple Place, Suite 330 25 * Boston, MA 02111-1307 USA 26 * 27 * @author Scott Ferguson 28 */ 29 30 package com.caucho.relaxng.program; 31 32 import com.caucho.log.Log; 33 import com.caucho.relaxng.RelaxException; 34 import com.caucho.util.L10N; 35 import com.caucho.xml.QName; 36 37 import java.util.HashSet; 38 import java.util.logging.Logger; 39 40 /** 41 * Matches names. 42 */ 43 abstract public class NameClassItem { 44 protected final static L10N L = new L10N(NameClassItem.class); 45 protected final static Logger log = Log.open(NameClassItem.class); 46 47 /** 48 * Adds to the first set, the set of element names possible. 49 */ 50 public void firstSet(HashSet<QName> set) 51 { 52 } 53 54 /** 55 * Returns true if the name matches. 56 */ 57 abstract public boolean matches(QName name); 58 59 /** 60 * Returns the pretty printed syntax. 61 */ 62 abstract public String toSyntaxDescription(String prefix); 63 64 /** 65 * Throws an error. 66 */ 67 protected RelaxException error(String msg) 68 { 69 return new RelaxException(msg); 70 } 71 } 72 73