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_data_DataSequence_idl
28#define com_sun_star_chart2_data_DataSequence_idl
29
30#include <com/sun/star/beans/XPropertySet.idl>
31#include <com/sun/star/container/XIndexReplace.idl>
32#include <com/sun/star/util/XCloneable.idl>
33#include <com/sun/star/util/XModifyBroadcaster.idl>
34
35#include <com/sun/star/chart2/data/XDataSequence.idl>
36#include <com/sun/star/chart2/data/XNumericalDataSequence.idl>
37#include <com/sun/star/chart2/data/XTextualDataSequence.idl>
38
39#include <com/sun/star/chart2/data/DataSequenceRole.idl>
40
41module com
42{
43module sun
44{
45module star
46{
47module chart2
48{
49module data
50{
51
52/** describes a container for a sequence of values.
53
54    <p>With the interface <type>XDataSequence</type> it is possible to
55    transfer a complete sequence of values.
56
57    <p>With the optional
58    <type scope="com::sun::star::container">XIndexReplace</type> it is
59    possible to modify single elements, if the corresponding
60    <type>DataProvider</type> supports modification of its values.</p>
61  */
62service DataSequence
63{
64    /** provides read- and write-access to the underlying data.
65     */
66    interface XDataSequence;
67
68    /** you may implement this interface to allow a fast acces to
69        numerical data.  With this interface you can get a
70        <atom>sequence</atom> of <atom>double</atom> values.
71    */
72    [optional] interface   XNumericalDataSequence;
73
74    /** you may implement this interface to allow a fast acces to
75        textual data.  With this interface you can get a
76        <atom>sequence</atom> of <atom>string</atom> values.
77    */
78    [optional] interface   XTextualDataSequence;
79
80    /** provides read- and write-access to single elements of the
81        underlying data.
82
83        <p>Only when supporting this interface, it is possible for
84        client applications to modify the content of the data that is
85        provided by this <type>DataSequence</type>.</p>
86     */
87    [optional] interface ::com::sun::star::container::XIndexReplace;
88
89    /** Allows creating copies of data sequences.  If this interface
90        is not supported, the same object will be shared if used by
91        multiple objects.
92
93        <p>Cloning is especially useful when using identifiers.  A
94        cloned data sequence will get a new identifier while the
95        source range representation is identical to the original
96        one.</p>
97
98        <p>Note that, when this interface is not implemented the
99        releasing of identifiers at the <type>XDataProvider</type>
100        will not work properly, because more than one object may use
101        the same identifier.  So, when an object releases the
102        identifier, another object might use a stale identifier.</p>
103     */
104    [optional] interface ::com::sun::star::util::XCloneable;
105
106    /** is used to broadcast change events whenever the content (data)
107        or the range representations change.
108     */
109    interface com::sun::star::util::XModifyBroadcaster;
110
111    /** the property interface by which the properties of all
112        supported services are exchanged
113    */
114    interface ::com::sun::star::beans::XPropertySet;
115
116    // ----------------------------------------------------------------------
117
118    /** The key (index) of the number format that this sequence should
119        be formatted with.
120
121        <p>The key identifies a number format in an
122        <type scope="com::sun::star::util">XNumberFormats</type>
123        object.  This object can be retrieved by the
124        <type scope="com::sun::star::util">XNumberFormatsSupplier</type>
125        interface supported by
126        <type scope="com::sun::star::chart">ChartDocument</type>.</p>
127
128        @todo use proper number format instead of a transient key.
129     */
130//     [optional, property] long                     NumberFormatKey;
131
132    /** The role of the series inside a data series.  This may be any
133        string.  However some strings are predefined and should always
134        be used in the same way.
135
136        @see DataSequenceRole
137     */
138    [property] DataSequenceRole                   Role;
139
140    /** If set to false <FALSE/>, values from hidden cells are not returned.
141     */
142    [optional, property] boolean                  IncludeHiddenCells;
143
144    /** a sequence of indexes that identify values that are hidden in the underlying
145        data provider.
146     */
147    [optional, property] sequence< long >         HiddenValues;
148};
149
150} ; // data
151} ; // chart2
152} ; // com
153} ; // sun
154} ; // star
155
156
157#endif
158