01: package it.unimi.dsi.mg4j.util.parser;
02:
03: import it.unimi.dsi.mg4j.util.MutableString;
04:
05: /*
06: * MG4J: Managing Gigabytes for Java
07: *
08: * Copyright (C) 2005-2007 Sebastiano Vigna
09: *
10: * This library is free software; you can redistribute it and/or modify it
11: * under the terms of the GNU Lesser General Public License as published by the Free
12: * Software Foundation; either version 2.1 of the License, or (at your option)
13: * any later version.
14: *
15: * This library is distributed in the hope that it will be useful, but
16: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
18: * for more details.
19: *
20: * You should have received a copy of the GNU Lesser General Public License
21: * along with this program; if not, write to the Free Software
22: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23: *
24: */
25:
26: /** A set of coherent methods to turn element-type, attribute and entity names to unique interned instances.
27: *
28: * <p>The {@link it.unimi.dsi.mg4j.util.parser.BulletParser} needs a way to turn
29: * a name (for an element type, attribute, or entity) into a corresponding object
30: * of type {@link it.unimi.dsi.mg4j.util.parser.Element}, {@link it.unimi.dsi.mg4j.util.parser.Attribute}
31: * or {@link it.unimi.dsi.mg4j.util.parser.Entity}, respectively. The returned element must
32: * be an interned, unique representation.
33: *
34: * <P>For instance, the {@linkplain it.unimi.dsi.mg4j.util.parser.HTMLFactory standard factory for
35: * HTML} parsing has ready-made interned versions of all names in the (X)HTML specification,
36: * and returns them upon request, but other policies are possible. For instance, instances of
37: * {@link WellFormedXmlFactory} intern every seen name, without reference to a data type (except
38: * for entities, in which case the HTML set is used).
39: *
40: * <P>The idea of factoring out the creation of interned counterparts of
41: * SGML/XML syntactical objects is due to Fabien Campagne.
42: *
43: * @author Sebastiano Vigna
44: * @since 1.0.2
45: * @deprecated Moved to <code>dsiutils</code>.
46: */
47:
48: @Deprecated
49: public interface ParsingFactory {
50:
51: /** Returns the {@link it.unimi.dsi.mg4j.util.parser.Element} associated
52: * to a name.
53: * @param name the name of an element type.
54: * @return the corresponding interned {@link Element} object.
55: */
56: public Element getElement(final MutableString name);
57:
58: /** Returns the {@link it.unimi.dsi.mg4j.util.parser.Attribute} associated
59: * to a name.
60: * @param name the name of an attribute.
61: * @return the corresponding interned {@link Attribute} object.
62: */
63: public Attribute getAttribute(final MutableString name);
64:
65: /** Returns the {@link it.unimi.dsi.mg4j.util.parser.Entity} associated
66: * to a name.
67: * @param name the name of an entity.
68: * @return the corresponding interned {@link Entity} object.
69: */
70: public Entity getEntity(final MutableString name);
71: }
|