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

org.apache.axiom.om.OMXMLParserWrapper Maven / Gradle / Ivy

There is a newer version: 5.0.22
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package org.apache.axiom.om;

import java.io.InputStream;
import java.io.Reader;

import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stream.StreamSource;

import org.apache.axiom.attachments.Attachments;
import org.w3c.dom.Node;

/** Interface OMXMLParserWrapper */
public interface OMXMLParserWrapper {
    /** @return Returns the complete status. */
    boolean isCompleted();

    /**
     * Get the document being built by this builder.
     * 
     * @return the {@link OMDocument} instance
     * @throws UnsupportedOperationException
     *             if there is no document linked to this builder; this may occur if the builder is
     *             associated with an {@link OMSourcedElement}
     */
    OMDocument getDocument();
    
    /**
     * Get the document element, i.e. the root element of the document. Using this method is
     * equivalent to using {@link OMDocument#getOMDocumentElement()} on the document returned by
     * {@link #getDocument()}.
     * 

* Note that this method will never return null (except in the very special case * where the document has been requested before and the document element has been removed * explicitly): if the document being parsed has no document element, then this will result in a * parser error, i.e. an {@link OMException} will be thrown. * * @return the document element * @throws OMException * if a parse error occurs * @throws UnsupportedOperationException * if there is no document linked to this builder; this may occur if the builder is * associated with an {@link OMSourcedElement} */ OMElement getDocumentElement(); /** * Get the document element, optionally discarding the document. The return value of this method * is the same as {@link #getDocumentElement()}. However, if the discardDocument * parameter is set to true, then the document element is removed from the document * and the document itself is discarded. In contrast to using {@link OMElement#detach()} this * will not build the element. The implementation also ensures that the element is not built * when it is added to another OM tree. This makes it possible to add the content of a document * to an existing OM tree while preserving the deferred parsing feature. It is even possible to * create an OM tree where different subtrees are associated with different builder instances. * * @param discardDocument * specifies whether the document should be discarded * @return the document element * @throws OMException * if a parse error occurs * @throws UnsupportedOperationException * if there is no document linked to this builder; this may occur if the builder is * associated with an {@link OMSourcedElement} */ OMElement getDocumentElement(boolean discardDocument); /** * Close this builder. This method frees the resources associated with this builder. In * particular, it releases the resources held by the underlying parser. This method does * not close the underlying input source. */ void close(); /** * Detach this builder from its underlying source, so that the state of the source object can be * changed without impact on the object model produced by this builder. The effect of this * method depends on the type of source object passed to {@link OMXMLBuilderFactory} to create * the builder: *

*

* * * * * * * * * * * * * * * * * * * * *
Actions performed by the {@link #detach()} method
Source object typeAction performed by this method
{@link InputStream}, {@link Reader}, {@link StreamSource} with {@link InputStream} or * {@link Reader}The remaining unprocessed content of the stream is read into memory so that it can be * safely closed. Note that this method doesn't close the stream; this is the responsibility of * the caller.
{@link StreamSource} with system ID and no streamThe remaining unprocessed content of the document is read into memory and the associated * stream is closed.
{@link Node}, {@link DOMSource}, {@link SAXSource}The object model is built completely.
{@link Attachments}All MIME parts are fetched so that the stream from which the {@link Attachments} object * has been created can safely be closed.
*/ void detach(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy