/**************************************************************
 * 
 * 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.
 * 
 *************************************************************/



#ifndef __com_sun_star_xml_dom_XCharacterData_idl__
#define __com_sun_star_xml_dom_XCharacterData_idl__

#ifndef __com_sun_star_xml_dom_XNode_idl__ 
#include <com/sun/star/xml/dom/XNode.idl> 
#endif

module com { module sun { module star { module xml { module dom {

interface XCharacterData: XNode
{
    /**
    Append the string to the end of the character data of the node.
    Throws:
        DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    */
    void appendData([in] string arg) raises (DOMException);
    
    /**
    Remove a range of 16-bit units from the node.
    Throws:
        DOMException - INDEX_SIZE_ERR: Raised if the specified offset is negative or greater 
            than the number of 16-bit units in data, or if the specified count is negative.
        NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    */
    void deleteData([in] long offset, [in] long count) raises (DOMException);

    /**
    Return the character data of the node that implements this interface.
    Throws:
        DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. 
        DOMException - DOMSTRING_SIZE_ERR: Raised when it would return more characters 
            than fit in a DOMString variable on the implementation platform.


    */
    string getData() raises (DOMException);

    /**
    The number of 16-bit units that are available through data and the
    substringData method below.
    */
    long getLength();

    /**
    Insert a string at the specified 16-bit unit offset.
    Throws:
    DOMException - INDEX_SIZE_ERR: Raised if the specified offset is negative or greater than 
                                   the number of 16-bit units in data.
                   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    */
    void insertData([in] long offset, [in] string arg) raises (DOMException);

    /**
    Replace the characters starting at the specified 16-bit unit offset 
    with the specified string.
    Throws;
    DOMException - INDEX_SIZE_ERR: Raised if the specified offset is negative or greater than 
                      the number of 16-bit units in data, or if the specified count is negative.
                   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    */
    void replaceData([in] long offset, [in] long count, [in] string arg) raises (DOMException);

    /**
    Set the character data of the node that implements this interface.
    Throws:
        DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. 
        DOMException - DOMSTRING_SIZE_ERR: Raised when it would return more characters than 
            fit in a DOMString variable on the implementation platform.
    */
    void setData([in] string data) raises (DOMException);

    /**
    Extracts a range of data from the node.
    Throws:
        DOMException - INDEX_SIZE_ERR: Raised if the specified offset is negative or greater 
            than the number of 16-bit units in data, or if the specified count is negative.
        DOMSTRING_SIZE_ERR: Raised if the specified range of text does not fit into a DOMString.
    */
    string subStringData([in] long offset, [in] long count) raises (DOMException);

};
};};};};};

#endif
