001: /*
002:
003: ============================================================================
004: The Apache Software License, Version 1.1
005: ============================================================================
006:
007: Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
008:
009: Redistribution and use in source and binary forms, with or without modifica-
010: tion, are permitted provided that the following conditions are met:
011:
012: 1. Redistributions of source code must retain the above copyright notice,
013: this list of conditions and the following disclaimer.
014:
015: 2. Redistributions in binary form must reproduce the above copyright notice,
016: this list of conditions and the following disclaimer in the documentation
017: and/or other materials provided with the distribution.
018:
019: 3. The end-user documentation included with the redistribution, if any, must
020: include the following acknowledgment: "This product includes software
021: developed by the Apache Software Foundation (http://www.apache.org/)."
022: Alternately, this acknowledgment may appear in the software itself, if
023: and wherever such third-party acknowledgments normally appear.
024:
025: 4. The names "Batik" and "Apache Software Foundation" must not be
026: used to endorse or promote products derived from this software without
027: prior written permission. For written permission, please contact
028: apache@apache.org.
029:
030: 5. Products derived from this software may not be called "Apache", nor may
031: "Apache" appear in their name, without prior written permission of the
032: Apache Software Foundation.
033:
034: THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
035: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
036: FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
037: APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
038: INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
039: DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
040: OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
041: ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
042: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
043: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
044:
045: This software consists of voluntary contributions made by many individuals
046: on behalf of the Apache Software Foundation. For more information on the
047: Apache Software Foundation, please see <http://www.apache.org/>.
048:
049: */
050:
051: package org.apache.batik.util;
052:
053: import java.util.Locale;
054: import java.util.ResourceBundle;
055:
056: /**
057: * This class describes the XML resources needed to use the various batik
058: * modules.
059: *
060: * @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
061: * @version $Id$
062: */
063: public class XMLResourceDescriptor {
064:
065: /**
066: * The XML parser class name key.
067: */
068: public final static String XML_PARSER_CLASS_NAME_KEY = "org.xml.sax.driver";
069:
070: /**
071: * The CSS parser class name key.
072: */
073: public final static String CSS_PARSER_CLASS_NAME_KEY = "org.w3c.css.sac.driver";
074:
075: /**
076: * The resources file name
077: */
078: public final static String RESOURCES = "org.apache.batik.util.resources.XMLResourceDescriptor";
079:
080: /**
081: * The resource bundle
082: */
083: protected static ResourceBundle bundle;
084:
085: /**
086: * The class name of the XML parser to use.
087: */
088: protected static String xmlParserClassName;
089:
090: /**
091: * The class name of the CSS parser to use.
092: */
093: protected static String cssParserClassName;
094:
095: static {
096: bundle = ResourceBundle.getBundle(RESOURCES, Locale
097: .getDefault());
098: }
099:
100: /**
101: * Returns the class name of the XML parser to use.
102: *
103: * <p>This method first checks if any XML parser has been specified using
104: * the <tt>setXMLParserClassName</tt> method. If any, this method will
105: * return the value of the property 'org.xml.sax.driver' specified in the
106: * <tt>resources/XMLResourceDescriptor.properties</tt> resource file.
107: */
108: public static String getXMLParserClassName() {
109: if (xmlParserClassName == null) {
110: xmlParserClassName = bundle
111: .getString(XML_PARSER_CLASS_NAME_KEY);
112: }
113: return xmlParserClassName;
114: }
115:
116: /**
117: * Sets the class name of the XML parser to use.
118: *
119: * @param xmlParserClassName the classname of the XML parser
120: */
121: public static void setXMLParserClassName(String xmlParserClassName) {
122: XMLResourceDescriptor.xmlParserClassName = xmlParserClassName;
123: }
124:
125: /**
126: * Returns the class name of the CSS parser to use.
127: *
128: * <p>This method first checks if any CSS parser has been
129: * specified using the <tt>setCSSParserClassName</tt> method. If
130: * any, this method will return the value of the property
131: * 'org.w3c.css.sac.driver' specified in the
132: * <tt>resources/XMLResourceDescriptor.properties</tt> resource
133: * file.
134: */
135: public static String getCSSParserClassName() {
136: if (cssParserClassName == null) {
137: cssParserClassName = bundle
138: .getString(CSS_PARSER_CLASS_NAME_KEY);
139: }
140: return cssParserClassName;
141: }
142:
143: /**
144: * Sets the class name of the CSS parser to use.
145: *
146: * @param cssParserClassName the classname of the CSS parser
147: */
148: public static void setCSSParserClassName(String cssParserClassName) {
149: XMLResourceDescriptor.cssParserClassName = cssParserClassName;
150: }
151: }
|