/**************************************************************
 * 
 * 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_chart_XChartData_idl__ 
#define __com_sun_star_chart_XChartData_idl__ 
 
#ifndef __com_sun_star_uno_XInterface_idl__ 
#include <com/sun/star/uno/XInterface.idl> 
#endif 
 
#ifndef __com_sun_star_chart_XChartDataChangeEventListener_idl__ 
#include <com/sun/star/chart/XChartDataChangeEventListener.idl> 
#endif 
 
 
//============================================================================= 
 
 module com {  module sun {  module star {  module chart {  
 
//============================================================================= 
 
/** manages the data of the chart.

    @see XChartDocument
 */
published interface XChartData: com::sun::star::uno::XInterface
{ 
	//------------------------------------------------------------------------- 
	 
	/** allows a component supporting the
        <type>XChartDataChangeEventListener</type> interface to
        register as listener.  The component will be notified with a
        <type>ChartDataChangeEvent</type> every time the chart's data
        changes.</p>

        @param aListener
        	the component that is to be added as listener

        @see XChartDataChangeEventListener
        @see ChartDataChangeEvent
	 */
	void addChartDataChangeEventListener( [in] com::sun::star::chart::XChartDataChangeEventListener aListener ); 
 
	//------------------------------------------------------------------------- 
	 
	/** removes a previously registered listener.

        @param aListener
        	the component that is to be removed
	 */
	void removeChartDataChangeEventListener( [in] com::sun::star::chart::XChartDataChangeEventListener aListener ); 
 
	//------------------------------------------------------------------------- 
	 
	/** @returns
    		the value which is to be used as an indicator for a
    		missing value in the data.
				 
		<p>In IEEE arithmetic format it is one of the NaN values, so
		there are no conflicts with existing numeric values.</p>
	 */
	double getNotANumber(); 
 
	//------------------------------------------------------------------------- 
	 
	/** checks whether the value given is equal to the indicator value
        for a missing value.

        <p>In IEEE arithmetic format it is one of the NaN values, so
		there are no conflicts with existing numeric values.</p>

        <p>Always use this method to check, if a value is <em>not a
        number</em>.  If you compare the value returned by
        <member>XChartData::getNotANumber</member> to another double
        value using the = operator, you may not get the desired
        result!</p>

		@returns
        	<TRUE/> if the number given is interpreted by the chart as
        	a missing value.

        @param nNumber
        	the number that you want to check for validity.
	 */
	boolean isNotANumber( [in] double nNumber ); 
 
}; 
 
//============================================================================= 
 
}; }; }; };  
 
#endif 
