1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_chart_XChartData_idl__
28#define __com_sun_star_chart_XChartData_idl__
29
30#ifndef __com_sun_star_uno_XInterface_idl__
31#include <com/sun/star/uno/XInterface.idl>
32#endif
33
34#ifndef __com_sun_star_chart_XChartDataChangeEventListener_idl__
35#include <com/sun/star/chart/XChartDataChangeEventListener.idl>
36#endif
37
38
39//=============================================================================
40
41 module com {  module sun {  module star {  module chart {
42
43//=============================================================================
44
45/** manages the data of the chart.
46
47    @see XChartDocument
48 */
49published interface XChartData: com::sun::star::uno::XInterface
50{
51	//-------------------------------------------------------------------------
52
53	/** allows a component supporting the
54        <type>XChartDataChangeEventListener</type> interface to
55        register as listener.  The component will be notified with a
56        <type>ChartDataChangeEvent</type> every time the chart's data
57        changes.</p>
58
59        @param aListener
60        	the component that is to be added as listener
61
62        @see XChartDataChangeEventListener
63        @see ChartDataChangeEvent
64	 */
65	void addChartDataChangeEventListener( [in] com::sun::star::chart::XChartDataChangeEventListener aListener );
66
67	//-------------------------------------------------------------------------
68
69	/** removes a previously registered listener.
70
71        @param aListener
72        	the component that is to be removed
73	 */
74	void removeChartDataChangeEventListener( [in] com::sun::star::chart::XChartDataChangeEventListener aListener );
75
76	//-------------------------------------------------------------------------
77
78	/** @returns
79    		the value which is to be used as an indicator for a
80    		missing value in the data.
81
82		<p>In IEEE arithmetic format it is one of the NaN values, so
83		there are no conflicts with existing numeric values.</p>
84	 */
85	double getNotANumber();
86
87	//-------------------------------------------------------------------------
88
89	/** checks whether the value given is equal to the indicator value
90        for a missing value.
91
92        <p>In IEEE arithmetic format it is one of the NaN values, so
93		there are no conflicts with existing numeric values.</p>
94
95        <p>Always use this method to check, if a value is <em>not a
96        number</em>.  If you compare the value returned by
97        <member>XChartData::getNotANumber</member> to another double
98        value using the = operator, you may not get the desired
99        result!</p>
100
101		@returns
102        	<TRUE/> if the number given is interpreted by the chart as
103        	a missing value.
104
105        @param nNumber
106        	the number that you want to check for validity.
107	 */
108	boolean isNotANumber( [in] double nNumber );
109
110};
111
112//=============================================================================
113
114}; }; }; };
115
116#endif
117