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_chart2_XInternalDataProvider_idl
28#define com_sun_star_chart2_XInternalDataProvider_idl
29
30#include <com/sun/star/chart2/data/XDataProvider.idl>
31#include <com/sun/star/chart2/data/XDataSequence.idl>
32
33module com
34{
35module sun
36{
37module star
38{
39module chart2
40{
41
42/** An internal DataProvider that has more access to data than a plain
43    DataProvider.
44 */
45interface XInternalDataProvider  : com::sun::star::chart2::data::XDataProvider
46{
47    boolean         hasDataByRangeRepresentation( [in] string aRange );
48    sequence< any > getDataByRangeRepresentation( [in] string aRange );
49    void            setDataByRangeRepresentation( [in] string aRange, [in] sequence< any > aNewData );
50
51    /** @param Note that -1 is allowed as the sequence is inserted
52               after the given index. So to insert a sequence as the
53               new first sequence (index 0), you would pass -1 here.
54     */
55    void insertSequence( [in] long nAfterIndex );
56    void deleteSequence( [in] long nAtIndex );
57    /** same as insertSequence with nAfterIndex being the largest
58        current index of the data, i.e. (size - 1)
59     */
60    void appendSequence();
61
62    void insertDataPointForAllSequences( [in] long nAfterIndex );
63    void deleteDataPointForAllSequences( [in] long nAtIndex );
64    void swapDataPointWithNextOneForAllSequences( [in] long nAtIndex );
65
66    /** If range representations of data sequences change due to
67        internal structural changes, they must be registered at the
68        data provider.
69
70        <p>Sequences that are directly retrieved via the methods of
71        the XDataProvider interface are already registered.  If a
72        labeled data sequence was created by cloning an existing one,
73        it has to be explicitly registered via this method.</p>
74     */
75    void registerDataSequenceForChanges( [in] data::XDataSequence xSeq );
76
77    /** insert an additional sequence for categories nLevel>=1;
78    categories at level 0 are always present and cannot be inserted or deleted
79    @since OOo 3.3
80    */
81    void insertComplexCategoryLevel( [in] long nLevel );
82    /** deletes an additional sequence for categories at nLevel>=1;
83    categories at level 0 are always present and cannot be deleted
84    @since OOo 3.3
85    */
86    void deleteComplexCategoryLevel( [in] long nLevel );
87};
88
89} ; // chart2
90} ; // com
91} ; // sun
92} ; // star
93
94
95#endif
96