1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23#ifndef com_sun_star_chart2_data_DataSequence_idl
24#define com_sun_star_chart2_data_DataSequence_idl
25
26#include <com/sun/star/beans/XPropertySet.idl>
27#include <com/sun/star/container/XIndexReplace.idl>
28#include <com/sun/star/util/XCloneable.idl>
29#include <com/sun/star/util/XModifyBroadcaster.idl>
30
31#include <com/sun/star/chart2/data/XDataSequence.idl>
32#include <com/sun/star/chart2/data/XNumericalDataSequence.idl>
33#include <com/sun/star/chart2/data/XTextualDataSequence.idl>
34
35#include <com/sun/star/chart2/data/DataSequenceRole.idl>
36
37module com
38{
39module sun
40{
41module star
42{
43module chart2
44{
45module data
46{
47
48/** describes a container for a sequence of values.
49
50    <p>With the interface <type>XDataSequence</type> it is possible to
51    transfer a complete sequence of values.
52
53    <p>With the optional
54    <type scope="com::sun::star::container">XIndexReplace</type> it is
55    possible to modify single elements, if the corresponding
56    <type>DataProvider</type> supports modification of its values.</p>
57  */
58service DataSequence
59{
60    /** provides read- and write-access to the underlying data.
61     */
62    interface XDataSequence;
63
64    /** you may implement this interface to allow a fast access to
65        numerical data.  With this interface you can get a
66        <atom>sequence</atom> of <atom>double</atom> values.
67    */
68    [optional] interface   XNumericalDataSequence;
69
70    /** you may implement this interface to allow a fast access to
71        textual data.  With this interface you can get a
72        <atom>sequence</atom> of <atom>string</atom> values.
73    */
74    [optional] interface   XTextualDataSequence;
75
76    /** provides read- and write-access to single elements of the
77        underlying data.
78
79        <p>Only when supporting this interface, it is possible for
80        client applications to modify the content of the data that is
81        provided by this <type>DataSequence</type>.</p>
82     */
83    [optional] interface ::com::sun::star::container::XIndexReplace;
84
85    /** Allows creating copies of data sequences.  If this interface
86        is not supported, the same object will be shared if used by
87        multiple objects.
88
89        <p>Cloning is especially useful when using identifiers.  A
90        cloned data sequence will get a new identifier while the
91        source range representation is identical to the original
92        one.</p>
93
94        <p>Note that, when this interface is not implemented the
95        releasing of identifiers at the <type>XDataProvider</type>
96        will not work properly, because more than one object may use
97        the same identifier.  So, when an object releases the
98        identifier, another object might use a stale identifier.</p>
99     */
100    [optional] interface ::com::sun::star::util::XCloneable;
101
102    /** is used to broadcast change events whenever the content (data)
103        or the range representations change.
104     */
105    interface com::sun::star::util::XModifyBroadcaster;
106
107    /** the property interface by which the properties of all
108        supported services are exchanged
109    */
110    interface ::com::sun::star::beans::XPropertySet;
111
112    // ----------------------------------------------------------------------
113
114    /** The key (index) of the number format that this sequence should
115        be formatted with.
116
117        <p>The key identifies a number format in an
118        <type scope="com::sun::star::util">XNumberFormats</type>
119        object.  This object can be retrieved by the
120        <type scope="com::sun::star::util">XNumberFormatsSupplier</type>
121        interface supported by
122        <type scope="com::sun::star::chart">ChartDocument</type>.</p>
123
124        @todo use proper number format instead of a transient key.
125     */
126//     [optional, property] long                     NumberFormatKey;
127
128    /** The role of the series inside a data series.  This may be any
129        string.  However some strings are predefined and should always
130        be used in the same way.
131
132        @see DataSequenceRole
133     */
134    [property] DataSequenceRole                   Role;
135
136    /** If set to false <FALSE/>, values from hidden cells are not returned.
137     */
138    [optional, property] boolean                  IncludeHiddenCells;
139
140    /** a sequence of indexes that identify values that are hidden in the underlying
141        data provider.
142     */
143    [optional, property] sequence< long >         HiddenValues;
144};
145
146} ; // data
147} ; // chart2
148} ; // com
149} ; // sun
150} ; // star
151
152
153#endif
154