blob: 43d186006e6529df8588ef3e57c999b33d96867d [file] [log] [blame]
/*
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
* THIS FILE WAS MODIFIED BY SUN MICROSYSTEMS, INC.
*/
package com.sun.xml.internal.org.jvnet.fastinfoset;
import java.io.OutputStream;
import java.util.Map;
/**
* A general interface for serializers of fast infoset documents.
*
* <p>
* This interface contains common methods that are not specific to any
* API associated with the serialization of XML Infoset to fast infoset
* documents.
*
* @author Paul.Sandoz@Sun.Com
*/
public interface FastInfosetSerializer {
/**
* The feature to ignore the document type declaration and the
* internal subset.
* <p>
* The default value is false. If true a serializer shall ignore document
* type declaration and the internal subset.
*/
public static final String IGNORE_DTD_FEATURE =
"http://jvnet.org/fastinfoset/serializer/feature/ignore/DTD";
/**
* The feature to ignore comments.
* <p>
* The default value is false. If true a serializer shall ignore comments
* and shall not serialize them.
*/
public static final String IGNORE_COMMENTS_FEATURE =
"http://jvnet.org/fastinfoset/serializer/feature/ignore/comments";
/**
* The feature to ignore processing instructions.
* <p>
* The default value is false. If true a serializer shall ignore processing
* instructions and shall not serialize them.
*/
public static final String IGNORE_PROCESSING_INSTRUCTIONS_FEATURE =
"http://jvnet.org/fastinfoset/serializer/feature/ignore/processingInstructions";
/**
* The feature to ignore text content that consists completely of white
* space characters.
* <p>
* The default value is false. If true a serializer shall ignore text
* content that consists completely of white space characters.
*/
public static final String IGNORE_WHITE_SPACE_TEXT_CONTENT_FEATURE =
"http://jvnet.org/fastinfoset/serializer/feature/ignore/whiteSpaceTextContent";
/**
* The property name to be used for getting and setting the buffer size
* of a parser.
*/
public static final String BUFFER_SIZE_PROPERTY =
"http://jvnet.org/fastinfoset/parser/properties/buffer-size";
/**
* The property name to be used for getting and setting the
* Map containing encoding algorithms.
*
*/
public static final String REGISTERED_ENCODING_ALGORITHMS_PROPERTY =
"http://jvnet.org/fastinfoset/parser/properties/registered-encoding-algorithms";
/**
* The property name to be used for getting and setting the
* Map containing external vocabularies.
*
*/
public static final String EXTERNAL_VOCABULARIES_PROPERTY =
"http://jvnet.org/fastinfoset/parser/properties/external-vocabularies";
/**
* The default minimum size of the character content chunks,
* that will be indexed.
*/
public final static int MIN_CHARACTER_CONTENT_CHUNK_SIZE = 0;
/**
* The default maximum size of the character content chunks,
* that will be indexed.
*/
public final static int MAX_CHARACTER_CONTENT_CHUNK_SIZE = 32;
/**
* The default value for limit on the size of indexed Map for attribute values
* Limit is measured in bytes not in number of entries
*/
public static final int CHARACTER_CONTENT_CHUNK_MAP_MEMORY_CONSTRAINT = Integer.MAX_VALUE;
/**
* The default minimum size of the attribute values, that will be indexed.
*/
public final static int MIN_ATTRIBUTE_VALUE_SIZE = 0;
/**
* The default maximum size of the attribute values, that will be indexed.
*/
public final static int MAX_ATTRIBUTE_VALUE_SIZE = 32;
/**
* The default value for limit on the size of indexed Map for attribute values
* Limit is measured in bytes not in number of entries
*/
public static final int ATTRIBUTE_VALUE_MAP_MEMORY_CONSTRAINT = Integer.MAX_VALUE;
/**
* The character encoding scheme string for UTF-8.
*/
public static final String UTF_8 = "UTF-8";
/**
* The character encoding scheme string for UTF-16BE.
*/
public static final String UTF_16BE = "UTF-16BE";
/**
* Set the {@link #IGNORE_DTD_FEATURE}.
* @param ignoreDTD true if the feature shall be ignored.
*/
public void setIgnoreDTD(boolean ignoreDTD);
/**
* Get the {@link #IGNORE_DTD_FEATURE}.
* @return true if the feature is ignored, false otherwise.
*/
public boolean getIgnoreDTD();
/**
* Set the {@link #IGNORE_COMMENTS_FEATURE}.
* @param ignoreComments true if the feature shall be ignored.
*/
public void setIgnoreComments(boolean ignoreComments);
/**
* Get the {@link #IGNORE_COMMENTS_FEATURE}.
* @return true if the feature is ignored, false otherwise.
*/
public boolean getIgnoreComments();
/**
* Set the {@link #IGNORE_PROCESSING_INSTRUCTIONS_FEATURE}.
* @param ignoreProcesingInstructions true if the feature shall be ignored.
*/
public void setIgnoreProcesingInstructions(boolean ignoreProcesingInstructions);
/**
* Get the {@link #IGNORE_PROCESSING_INSTRUCTIONS_FEATURE}.
* @return true if the feature is ignored, false otherwise.
*/
public boolean getIgnoreProcesingInstructions();
/**
* Set the {@link #IGNORE_WHITE_SPACE_TEXT_CONTENT_FEATURE}.
* @param ignoreWhiteSpaceTextContent true if the feature shall be ignored.
*/
public void setIgnoreWhiteSpaceTextContent(boolean ignoreWhiteSpaceTextContent);
/**
* Get the {@link #IGNORE_WHITE_SPACE_TEXT_CONTENT_FEATURE}.
* @return true if the feature is ignored, false otherwise.
*/
public boolean getIgnoreWhiteSpaceTextContent();
/**
* Sets the character encoding scheme.
*
* The character encoding can be either UTF-8 or UTF-16BE for the
* the encoding of chunks of CIIs, the [normalized value]
* property of attribute information items, comment information
* items and processing instruction information items.
*
* @param characterEncodingScheme The set of registered algorithms.
*/
public void setCharacterEncodingScheme(String characterEncodingScheme);
/**
* Gets the character encoding scheme.
*
* @return The character encoding scheme.
*/
public String getCharacterEncodingScheme();
/**
* Sets the set of registered encoding algorithms.
*
* @param algorithms The set of registered algorithms.
*/
public void setRegisteredEncodingAlgorithms(Map algorithms);
/**
* Gets the set of registered encoding algorithms.
*
* @return The set of registered algorithms.
*/
public Map getRegisteredEncodingAlgorithms();
/**
* Gets the minimum size of character content chunks
* that will be indexed.
*
* @return The minimum character content chunk size.
*/
public int getMinCharacterContentChunkSize();
/**
* Sets the minimum size of character content chunks
* that will be indexed.
*
* @param size the minimum character content chunk size.
*/
public void setMinCharacterContentChunkSize(int size);
/**
* Gets the maximum size of character content chunks
* that might be indexed.
*
* @return The maximum character content chunk size.
*/
public int getMaxCharacterContentChunkSize();
/**
* Sets the maximum size of character content chunks
* that might be indexed.
*
* @param size the maximum character content chunk size.
*/
public void setMaxCharacterContentChunkSize(int size);
/**
* Gets the limit on the memory size, allocated for indexed character
* content chunks.
*
* @return the limit on the memory size, allocated for indexed character
* content chunks.
*/
public int getCharacterContentChunkMapMemoryLimit();
/**
* Sets the limit on the memory size, allocated for indexed character
* content chunks.
*
* @param size the limit on the memory size, allocated for indexed character
* content chunks.
*/
public void setCharacterContentChunkMapMemoryLimit(int size);
/**
* Gets the minimum size of attribute values
* that will be indexed.
*
* @return The minimum attribute values size.
*/
public int getMinAttributeValueSize();
/**
* Sets the minimum size of attribute values
* that will be indexed.
*
* @param size the minimum attribute values size.
*/
public void setMinAttributeValueSize(int size);
/**
* Gets the maximum size of attribute values
* that will be indexed.
*
* @return The maximum attribute values size.
*/
public int getMaxAttributeValueSize();
/**
* Sets the maximum size of attribute values
* that will be indexed.
*
* @param size the maximum attribute values size.
*/
public void setMaxAttributeValueSize(int size);
/**
* Gets the limit on the memory size of Map of attribute values
* that will be indexed.
*
* @return The attribute value size limit.
*/
public int getAttributeValueMapMemoryLimit();
/**
* Sets the limit on the memory size of Map of attribute values
* that will be indexed.
*
* @param size The attribute value size limit. Any value less
* that a length of size limit will be indexed.
*/
public void setAttributeValueMapMemoryLimit(int size);
/**
* Set the external vocabulary that shall be used when serializing.
*
* @param v the vocabulary.
*/
public void setExternalVocabulary(ExternalVocabulary v);
/**
* Set the application data to be associated with the serializer vocabulary.
*
* @param data the application data.
*/
public void setVocabularyApplicationData(VocabularyApplicationData data);
/**
* Get the application data associated with the serializer vocabulary.
*
* @return the application data.
*/
public VocabularyApplicationData getVocabularyApplicationData();
/**
* Reset the serializer for reuse serializing another XML infoset.
*/
public void reset();
/**
* Set the OutputStream to serialize the XML infoset to a
* fast infoset document.
*
* @param s the OutputStream where the fast infoset document is written to.
*/
public void setOutputStream(OutputStream s);
}