All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.xml.stream.Constants Maven / Gradle / Ivy

The newest version!
/*
 * $Id: Constants.java,v 1.6 2007-09-26 21:11:55 joehw Exp $
 */

/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 * 
 * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
 * 
 * The contents of this file are subject to the terms of either the GNU
 * General Public License Version 2 only ("GPL") or the Common Development
 * and Distribution License("CDDL") (collectively, the "License").  You
 * may not use this file except in compliance with the License. You can obtain
 * a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
 * or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
 * language governing permissions and limitations under the License.
 * 
 * When distributing the software, include this License Header Notice in each
 * file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
 * Sun designates this particular file as subject to the "Classpath" exception
 * as provided by Sun in the GPL Version 2 section of the License file that
 * accompanied this code.  If applicable, add the following below the License
 * Header, with the fields enclosed by brackets [] replaced by your own
 * identifying information: "Portions Copyrighted [year]
 * [name of copyright owner]"
 * 
 * Contributor(s):
 * 
 * If you wish your version of this file to be governed by only the CDDL or
 * only the GPL Version 2, indicate your decision by adding "[Contributor]
 * elects to include this software in this distribution under the [CDDL or GPL
 * Version 2] license."  If you don't indicate a single choice of license, a
 * recipient has the option to distribute your version of this file under
 * either the CDDL, the GPL Version 2 or to extend the choice of license to
 * its licensees as provided above.  However, if you add GPL Version 2 code
 * and therefore, elected the GPL Version 2 license, then the option applies
 * only if the new code is made subject to such option by the copyright
 * holder.
 */

/*
 * The Apache Software License, Version 1.1
 *
 *
 * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution,
 *    if any, must include the following acknowledgment:
 *       "This product includes software developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowledgment may appear in the software itself,
 *    if and wherever such third-party acknowledgments normally appear.
 *
 * 4. The names "Xerces" and "Apache Software Foundation" must
 *    not be used to endorse or promote products derived from this
 *    software without prior written permission. For written
 *    permission, please contact [email protected].
 *
 * 5. Products derived from this software may not be called "Apache",
 *    nor may "Apache" appear in their name, without prior written
 *    permission of the Apache Software Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation and was
 * originally based on software copyright (c) 1999, International
 * Business Machines, Inc., http://www.apache.org.  For more
 * information on the Apache Software Foundation, please see
 * .
 */

package com.sun.xml.stream;

import java.util.Enumeration;
import java.util.NoSuchElementException;

/**
 * Commonly used constants.
 *
 * @author Andy Clark, IBM
 *
 * @version $Id: Constants.java,v 1.6 2007-09-26 21:11:55 joehw Exp $
 */
public final class Constants {
    
    //
    // Constants
    //
    // Schema Types:
    public static final String NS_XMLSCHEMA = "http://www.w3.org/2001/XMLSchema".intern();
    public static final String NS_DTD = "http://www.w3.org/TR/REC-xml".intern();
    
    
    //stax properties
    public static final String ESCAPE_CHARACTERS = "escapeCharacters";
    public static final String STAX_PROPERTIES = "stax-properties" ;
    public static final String STAX_ENTITY_RESOLVER_PROPERTY = "internal/stax-entity-resolver";
    public static final String STAX_REPORT_CDATA_EVENT = "report-cdata-event";
    public static final String IMPLEMENTATION_NAME = "implementation-name";
    public static final String ZEPHYR_PROPERTY_PREFIX = "http://java.sun.com/xml/stream/properties/" ;
    public static final String REUSE_INSTANCE = "reuse-instance" ;
    public static final String OUTPUTSTREAM = "outputstream";
    /**
     * If true, ignore DOCTYPE declaration as if it wasn't present at all.
     * Note that this is a violation of the XML recommendation.
     * The full property name is prefixed by {@link #ZEPHYR_PROPERTY_PREFIX}.
     */
    public static final String IGNORE_EXTERNAL_DTD = "ignore-external-dtd";
    
    /** Property identifier: entity manager. */
    protected static final String ENTITY_MANAGER =
    Constants.XERCES_PROPERTY_PREFIX + Constants.ENTITY_MANAGER_PROPERTY;
    
    /** Property identifier: Error Reporter. */
    protected static final String ERROR_REPORTER =
    Constants.XERCES_PROPERTY_PREFIX + Constants.ERROR_REPORTER_PROPERTY;
    
    /** Property identifier: Symbol table. */
    protected static final String SYMBOL_TABLE =
    Constants.XERCES_PROPERTY_PREFIX + Constants.SYMBOL_TABLE_PROPERTY;
    
    // sax features
    
    /** SAX feature prefix ("http://xml.org/sax/features/"). */
    public static final String SAX_FEATURE_PREFIX = "http://xml.org/sax/features/";
    
    /** Namespaces feature ("namespaces"). */
    public static final String NAMESPACES_FEATURE = "namespaces";
    
    /** Namespace prefixes feature ("namespace-prefixes"). */
    public static final String NAMESPACE_PREFIXES_FEATURE = "namespace-prefixes";
    
    /** String interning feature ("string-interning"). */
    public static final String STRING_INTERNING_FEATURE = "string-interning";
    
    /** Validation feature ("validation"). */
    public static final String VALIDATION_FEATURE = "validation";
    
    /** External general entities feature ("external-general-entities "). */
    public static final String EXTERNAL_GENERAL_ENTITIES_FEATURE = "external-general-entities";
    
    /** External parameter entities feature ("external-parameter-entities "). */
    public static final String EXTERNAL_PARAMETER_ENTITIES_FEATURE = "external-parameter-entities";
    
    /** Allow unparsed entity and notation declaration events to be sent after the end DTD event ("allow-dtd-events-after-endDTD") */
    public static final String ALLOW_DTD_EVENTS_AFTER_ENDDTD_FEATURE = "allow-dtd-events-after-endDTD";
    
    // sax properties
    
    /** SAX property prefix ("http://xml.org/sax/properties/"). */
    public static final String SAX_PROPERTY_PREFIX = "http://xml.org/sax/properties/";
    
    /** Declaration handler property ("declaration-handler"). */
    public static final String DECLARATION_HANDLER_PROPERTY = "declaration-handler";
    
    /** Lexical handler property ("lexical-handler"). */
    public static final String LEXICAL_HANDLER_PROPERTY = "lexical-handler";
    
    /** DOM node property ("dom-node"). */
    public static final String DOM_NODE_PROPERTY = "dom-node";
    
    /** XML string property ("xml-string"). */
    public static final String XML_STRING_PROPERTY = "xml-string";
    
    
    //
    // JAXP properties
    //
    
    /** JAXP property prefix ("http://java.sun.com/xml/jaxp/properties/"). */
    public static final String JAXP_PROPERTY_PREFIX =
    "http://java.sun.com/xml/jaxp/properties/";
    
    /** JAXP schemaSource property: when used internally may include DTD sources (DOM) */
    public static final String SCHEMA_SOURCE = "schemaSource";
    
    /** JAXP schemaSource language: when used internally may include DTD namespace (DOM) */
    public static final String SCHEMA_LANGUAGE = "schemaLanguage";
    
    
    //
    // DOM features
    //
    
    /** Comments feature ("include-comments"). */
    public static final String INCLUDE_COMMENTS_FEATURE = "include-comments";
    
    /** Create cdata nodes feature ("create-cdata-nodes"). */
    public static final String CREATE_CDATA_NODES_FEATURE = "create-cdata-nodes";
    
    /** Feature id: load as infoset. */
    public static final String LOAD_AS_INFOSET = "load-as-infoset";
    
    
    //
    // Constants: DOM Level 3 feature ids
    //
    
    public static final String DOM_CANONICAL_FORM = "canonical-form";
    public static final String DOM_CDATA_SECTIONS ="cdata-sections";
    public static final String DOM_COMMENTS = "comments";
    
    // REVISIT: this feature seems to have no effect for Xerces
    public static final String DOM_CHARSET_OVERRIDES_XML_ENCODING =
    "charset-overrides-xml-encoding";
    
    public static final String DOM_DATATYPE_NORMALIZATION = "datatype-normalization";
    public static final String DOM_ENTITIES = "entities";
    public static final String DOM_INFOSET = "infoset";
    public static final String DOM_NAMESPACES = "namespaces";
    public static final String DOM_NAMESPACE_DECLARATIONS = "namespace-declarations";
    public static final String DOM_SUPPORTED_MEDIATYPES_ONLY =
    "supported-mediatypes-only";
    
    public static final String DOM_VALIDATE_IF_SCHEMA = "validate-if-schema";
    public static final String DOM_VALIDATE = "validate";
    public static final String DOM_WHITESPACE_IN_ELEMENT_CONTENT =
    "whitespace-in-element-content";
    
    // DOM Level 3 features defined in Core:
    public static final String DOM_DISCARD_DEFAULT_CONTENT = "discard-default-content";
    public static final String DOM_NORMALIZE_CHARACTERS    = "normalize-characters";
    public static final String DOM_CHECK_CHAR_NORMALIZATION  = "check-character-normalization";
    public static final String DOM_WELLFORMED  = "well-formed";
    public static final String DOM_SPLIT_CDATA = "split-cdata-sections";
    public static final String DOM_IGNORE_CHAR_DENORMALIZATION = "ignore-unknown-character-denomalizations";
    
    // Load and Save
    public static final String DOM_FORMAT_PRETTY_PRINT = "format-pretty-print";
    public static final String DOM_XMLDECL = "xml-declaration";
    public static final String DOM_UNKNOWNCHARS = "unknown-characters";
    public static final String DOM_CERTIFIED =  "certified";
    
    // DOM Properties
    public static final String DOM_ENTITY_RESOLVER = "entity-resolver";
    public static final String DOM_ERROR_HANDLER = "error-handler";
    public static final String DOM_SCHEMA_TYPE = "schema-type";
    public static final String DOM_SCHEMA_LOCATION = "schema-location";
    
    // XSModel
    public static final String DOM_PSVI = "psvi";
    
    
    // xerces features
    
    /** Xerces features prefix ("http://apache.org/xml/features/"). */
    public static final String XERCES_FEATURE_PREFIX = "http://apache.org/xml/features/";
    
    /** Schema validation feature ("validation/schema"). */
    public static final String SCHEMA_VALIDATION_FEATURE = "validation/schema";
    
    /** Expose schema normalized values */
    public static final String SCHEMA_NORMALIZED_VALUE = "validation/schema/normalized-value";
    
    /** Send schema default value via characters() */
    public static final String SCHEMA_ELEMENT_DEFAULT = "validation/schema/element-default";
    
    /** Schema full constraint checking ("validation/schema-full-checking"). */
    public static final String SCHEMA_FULL_CHECKING = "validation/schema-full-checking";
    
    /** Augment Post-Schema-Validation-Infoset */
    public static final String SCHEMA_AUGMENT_PSVI = "validation/schema/augment-psvi";
    
    /** Dynamic validation feature ("validation/dynamic"). */
    public static final String DYNAMIC_VALIDATION_FEATURE = "validation/dynamic";
    
    /** Warn on duplicate attribute declaration feature ("validation/warn-on-duplicate-attdef"). */
    public static final String WARN_ON_DUPLICATE_ATTDEF_FEATURE = "validation/warn-on-duplicate-attdef";
    
    /** Warn on undeclared element feature ("validation/warn-on-undeclared-elemdef"). */
    public static final String WARN_ON_UNDECLARED_ELEMDEF_FEATURE = "validation/warn-on-undeclared-elemdef";
    
    /** Warn on duplicate entity declaration feature ("warn-on-duplicate-entitydef"). */
    public static final String WARN_ON_DUPLICATE_ENTITYDEF_FEATURE = "warn-on-duplicate-entitydef";
    
    /** Allow Java encoding names feature ("allow-java-encodings"). */
    public static final String ALLOW_JAVA_ENCODINGS_FEATURE = "allow-java-encodings";
    
    /** Disallow DOCTYPE declaration feature ("disallow-doctype-decl"). */
    public static final String DISALLOW_DOCTYPE_DECL_FEATURE = "disallow-doctype-decl";
    
    /** Continue after fatal error feature ("continue-after-fatal-error"). */
    public static final String CONTINUE_AFTER_FATAL_ERROR_FEATURE = "continue-after-fatal-error";
    
    /** Load dtd grammar when nonvalidating feature ("nonvalidating/load-dtd-grammar"). */
    public static final String LOAD_DTD_GRAMMAR_FEATURE = "nonvalidating/load-dtd-grammar";
    
    /** Load external dtd when nonvalidating feature ("nonvalidating/load-external-dtd"). */
    public static final String LOAD_EXTERNAL_DTD_FEATURE = "nonvalidating/load-external-dtd";
    
    /** Defer node expansion feature ("dom/defer-node-expansion"). */
    public static final String DEFER_NODE_EXPANSION_FEATURE = "dom/defer-node-expansion";
    
    /** Create entity reference nodes feature ("dom/create-entity-ref-nodes"). */
    public static final String CREATE_ENTITY_REF_NODES_FEATURE = "dom/create-entity-ref-nodes";
    
    /** Include ignorable whitespace feature ("dom/include-ignorable-whitespace"). */
    public static final String INCLUDE_IGNORABLE_WHITESPACE = "dom/include-ignorable-whitespace";
    
    /** Default attribute values feature ("validation/default-attribute-values"). */
    public static final String DEFAULT_ATTRIBUTE_VALUES_FEATURE = "validation/default-attribute-values";
    
    /** Validate content models feature ("validation/validate-content-models"). */
    public static final String VALIDATE_CONTENT_MODELS_FEATURE = "validation/validate-content-models";
    
    /** Validate datatypes feature ("validation/validate-datatypes"). */
    public static final String VALIDATE_DATATYPES_FEATURE = "validation/validate-datatypes";
    
    /** Notify character references feature (scanner/notify-char-refs"). */
    public static final String NOTIFY_CHAR_REFS_FEATURE = "scanner/notify-char-refs";
    
    /** Notify built-in (&, etc.) references feature (scanner/notify-builtin-refs"). */
    public static final String NOTIFY_BUILTIN_REFS_FEATURE = "scanner/notify-builtin-refs";
    
    /** Standard URI conformant feature ("standard-uri-conformant"). */
    public static final String STANDARD_URI_CONFORMANT_FEATURE = "standard-uri-conformant";
    
    // xerces properties
    
    /** Xerces properties prefix ("http://apache.org/xml/properties/"). */
    public static final String XERCES_PROPERTY_PREFIX = "http://apache.org/xml/properties/";
    
    /** Current element node property ("dom/current-element-node"). */
    public static final String CURRENT_ELEMENT_NODE_PROPERTY = "dom/current-element-node";
    
    /** Document class name property ("dom/document-class-name"). */
    public static final String DOCUMENT_CLASS_NAME_PROPERTY = "dom/document-class-name";
    
    /** Symbol table property ("internal/symbol-table"). */
    public static final String SYMBOL_TABLE_PROPERTY = "internal/symbol-table";
    
    /** Error reporter property ("internal/error-reporter"). */
    public static final String ERROR_REPORTER_PROPERTY = "internal/error-reporter";
    
    /** Error handler property ("internal/error-handler"). */
    public static final String ERROR_HANDLER_PROPERTY = "internal/error-handler";
    
    /** XInclude handler property ("internal/xinclude-handler"). */
    public static final String XINCLUDE_HANDLER_PROPERTY = "internal/xinclude-handler";
    
    /** Entity manager property ("internal/entity-manager"). */
    public static final String ENTITY_MANAGER_PROPERTY = "internal/entity-manager";
    
    /** Input buffer size property ("input-buffer-size"). */
    public static final String BUFFER_SIZE_PROPERTY = "input-buffer-size";
    
    /** Security manager property ("security-manager"). */
    public static final String SECURITY_MANAGER_PROPERTY = "security-manager";
    
    /** Entity resolver property ("internal/entity-resolver"). */
    public static final String ENTITY_RESOLVER_PROPERTY = "internal/entity-resolver";
    
    
    /** Grammar pool property ("internal/grammar-pool"). */
    public static final String XMLGRAMMAR_POOL_PROPERTY = "internal/grammar-pool";
    
    /** Datatype validator factory ("internal/datatype-validator-factory"). */
    public static final String DATATYPE_VALIDATOR_FACTORY_PROPERTY = "internal/datatype-validator-factory";
    
    /** Document scanner property ("internal/document-scanner"). */
    public static final String DOCUMENT_SCANNER_PROPERTY = "internal/document-scanner";
    
    /** DTD scanner property ("internal/dtd-scanner"). */
    public static final String DTD_SCANNER_PROPERTY = "internal/dtd-scanner";
    
    /** DTD processor property ("internal/dtd-processor"). */
    public static final String DTD_PROCESSOR_PROPERTY = "internal/dtd-processor";
    
    /** Validator property ("internal/validator"). */
    public static final String VALIDATOR_PROPERTY = "internal/validator";
    
    /** Validator property ("internal/validator/dtd"). */
    public static final String DTD_VALIDATOR_PROPERTY = "internal/validator/dtd";
    
    /** Validator property ("internal/validator/schema"). */
    public static final String SCHEMA_VALIDATOR_PROPERTY = "internal/validator/schema";
    
    /** No namespace schema location property ("schema/external-schemaLocation"). */
    public static final String SCHEMA_LOCATION = "schema/external-schemaLocation";
    
    /** Schema location property ("schema/external-noNamespaceSchemaLocation"). */
    public static final String SCHEMA_NONS_LOCATION = "schema/external-noNamespaceSchemaLocation";
    
    /** Namespace binder property ("internal/namespace-binder"). */
    public static final String NAMESPACE_BINDER_PROPERTY = "internal/namespace-binder";
    
    /** Namespace context property ("internal/namespace-context"). */
    public static final String NAMESPACE_CONTEXT_PROPERTY = "internal/namespace-context";
    
    /** Validation manager property ("internal/validation-manager"). */
    public static final String VALIDATION_MANAGER_PROPERTY = "internal/validation-manager";
    
    // general constants
    
    /** Element PSVI is stored in augmentations using string "ELEMENT_PSVI" */
    public final static String ELEMENT_PSVI = "ELEMENT_PSVI";
    
    /* Attribute PSVI is stored in augmentations using string "ATTRIBUTE_PSVI" */
    public final static String ATTRIBUTE_PSVI = "ATTRIBUTE_PSVI";
    
    // XML version constants
    public final static short XML_VERSION_1_0 = 1;
    public final static short XML_VERSION_1_1 = 2;
    
    // private
    
    /** SAX features. */
    private static final String[] fgSAXFeatures = {
        NAMESPACES_FEATURE,
        NAMESPACE_PREFIXES_FEATURE,
        STRING_INTERNING_FEATURE,
        VALIDATION_FEATURE,
        EXTERNAL_GENERAL_ENTITIES_FEATURE,
        EXTERNAL_PARAMETER_ENTITIES_FEATURE,
    };
    
    /** SAX properties. */
    private static final String[] fgSAXProperties = {
        DECLARATION_HANDLER_PROPERTY,
        LEXICAL_HANDLER_PROPERTY,
        DOM_NODE_PROPERTY,
        XML_STRING_PROPERTY,
    };
    
    /** Xerces features. */
    private static final String[] fgXercesFeatures = {
        SCHEMA_VALIDATION_FEATURE,
        SCHEMA_FULL_CHECKING,
        DYNAMIC_VALIDATION_FEATURE,
        WARN_ON_DUPLICATE_ATTDEF_FEATURE,
        WARN_ON_UNDECLARED_ELEMDEF_FEATURE,
        ALLOW_JAVA_ENCODINGS_FEATURE,
        CONTINUE_AFTER_FATAL_ERROR_FEATURE,
        LOAD_DTD_GRAMMAR_FEATURE,
        LOAD_EXTERNAL_DTD_FEATURE,
        //DEFER_NODE_EXPANSION_FEATURE,
        CREATE_ENTITY_REF_NODES_FEATURE,
        INCLUDE_IGNORABLE_WHITESPACE,
        //GRAMMAR_ACCESS_FEATURE,
        DEFAULT_ATTRIBUTE_VALUES_FEATURE,
        VALIDATE_CONTENT_MODELS_FEATURE,
        VALIDATE_DATATYPES_FEATURE,
        NOTIFY_CHAR_REFS_FEATURE
    };
    
    /** Xerces properties. */
    private static final String[] fgXercesProperties = {
        CURRENT_ELEMENT_NODE_PROPERTY,
        DOCUMENT_CLASS_NAME_PROPERTY,
        SYMBOL_TABLE_PROPERTY,
        ERROR_HANDLER_PROPERTY,
        ERROR_REPORTER_PROPERTY,
        ENTITY_MANAGER_PROPERTY,
        ENTITY_RESOLVER_PROPERTY,
        XMLGRAMMAR_POOL_PROPERTY,
        DATATYPE_VALIDATOR_FACTORY_PROPERTY,
        DOCUMENT_SCANNER_PROPERTY,
        DTD_SCANNER_PROPERTY,
        VALIDATOR_PROPERTY,
        SCHEMA_LOCATION,
        SCHEMA_NONS_LOCATION,
        VALIDATION_MANAGER_PROPERTY
    };
    
    private static final String [] zephyrFeatures ={
        XERCES_FEATURE_PREFIX + NAMESPACES_FEATURE,
        XERCES_FEATURE_PREFIX + WARN_ON_DUPLICATE_ATTDEF_FEATURE,
        XERCES_FEATURE_PREFIX + WARN_ON_UNDECLARED_ELEMDEF_FEATURE,
        XERCES_FEATURE_PREFIX + ALLOW_JAVA_ENCODINGS_FEATURE,
        
    } ;
    
    private static final String [] zephyrProperties = {
        XERCES_PROPERTY_PREFIX + SYMBOL_TABLE_PROPERTY,
        XERCES_PROPERTY_PREFIX + ERROR_REPORTER_PROPERTY,
        XERCES_PROPERTY_PREFIX + ERROR_HANDLER_PROPERTY,
        XERCES_PROPERTY_PREFIX + ENTITY_RESOLVER_PROPERTY,
        XERCES_PROPERTY_PREFIX + DTD_SCANNER_PROPERTY
    };
    
    /** Empty enumeration. */
    private static final Enumeration fgEmptyEnumeration = new ArrayEnumeration(new Object[] {});
    
    //
    // Constructors
    //
    
    /** This class cannot be instantiated. */
    private Constants() {}
    
    //
    // Public methods
    //
    
    //ZEPHYR
    
    public static Enumeration getZephyrFeatures(){
        return new ArrayEnumeration(zephyrFeatures);
    }
    
    public static Enumeration getZephyrProperties(){
        return new ArrayEnumeration(zephyrProperties);
    }
    
    // sax
    
    /** Returns an enumeration of the SAX features. */
    public static Enumeration getSAXFeatures() {
        return fgSAXFeatures.length > 0
        ? new ArrayEnumeration(fgSAXFeatures) : fgEmptyEnumeration;
    } // getSAXFeatures():Enumeration
    
    /** Returns an enumeration of the SAX properties. */
    public static Enumeration getSAXProperties() {
        return fgSAXProperties.length > 0
        ? new ArrayEnumeration(fgSAXProperties) : fgEmptyEnumeration;
    } // getSAXProperties():Enumeration
    
    // xerces
    
    /** Returns an enumeration of the Xerces features. */
    public static Enumeration getXercesFeatures() {
        return fgXercesFeatures.length > 0
        ? new ArrayEnumeration(fgXercesFeatures) : fgEmptyEnumeration;
    } // getXercesFeatures():Enumeration
    
    /** Returns an enumeration of the Xerces properties. */
    public static Enumeration getXercesProperties() {
        return fgXercesProperties.length > 0
        ? new ArrayEnumeration(fgXercesProperties) : fgEmptyEnumeration;
    } // getXercesProperties():Enumeration
    
    
    //
    // Classes
    //
    
    /**
     * An array enumeration.
     *
     * @author Andy Clark, IBM
     */
    static class ArrayEnumeration
    implements Enumeration {
        
        //
        // Data
        //
        
        /** Array. */
        private Object[] array;
        
        /** Index. */
        private int index;
        
        //
        // Constructors
        //
        
        /** Constructs an array enumeration. */
        public ArrayEnumeration(Object[] array) {
            this.array = array;
        } // (Object[])
        
        //
        // Enumeration methods
        //
        
        /**
         * Tests if this enumeration contains more elements.
         *
         * @return  true if this enumeration contains more elements;
         *          false otherwise.
         * @since   JDK1.0
         */
        public boolean hasMoreElements() {
            return index < array.length;
        } // hasMoreElement():boolean
        
        /**
         * Returns the next element of this enumeration.
         *
         * @return     the next element of this enumeration.
         * @exception  NoSuchElementException  if no more elements exist.
         * @since      JDK1.0
         */
        public Object nextElement() {
            if (index < array.length) {
                return array[index++];
            }
            throw new NoSuchElementException();
        } // nextElement():Object
        
    } // class ArrayEnumeration
    
    //
    // MAIN
    //
    
    /** Prints all of the constants to standard output. */
    public static void main(String[] argv) {
        
        print("SAX features:", SAX_FEATURE_PREFIX, fgSAXFeatures);
        print("SAX properties:", SAX_PROPERTY_PREFIX, fgSAXProperties);
        print("Xerces features:", XERCES_FEATURE_PREFIX, fgXercesFeatures);
        print("Xerces properties:", XERCES_PROPERTY_PREFIX, fgXercesProperties);
        
    } // main(String[])
    
    /** Prints a list of features/properties. */
    private static void print(String header, String prefix, Object[] array) {
        System.out.print(header);
        if (array.length > 0) {
            System.out.println();
            for (int i = 0; i < array.length; i++) {
                System.out.print("  ");
                System.out.print(prefix);
                System.out.println(array[i]);
            }
        }
        else {
            System.out.println(" none.");
        }
    } // print(String,String,Object[])
    
} // class Constants




© 2015 - 2024 Weber Informatics LLC | Privacy Policy