com.sun.xml.stream.Constants Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sjsxp Show documentation
Show all versions of sjsxp Show documentation
Sun Java Streaming XML Parser (SJSXP) is the implementation of JSR 173.
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