summaryrefslogtreecommitdiff
path: root/xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SpreadsheetDecoder.java
blob: 4ad1080daa025b059cdd8270b1fbe411045a64ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   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 .
 */

package org.openoffice.xmerge.converter.xml.sxc;

import java.io.IOException;
import java.util.Iterator;

import org.openoffice.xmerge.ConvertData;

/**
 * This {@code class} is a {@code abstract class} for encoding a "Device"
 * {@code Document} format into an alternative spreadsheet format.
 */
public abstract class SpreadsheetDecoder {

    /**
     * Returns the total number of sheets in the WorkBook.
     *
     * @return  The number of sheets in the WorkBook.
     */
    public abstract int getNumberOfSheets();

    /**
     * Returns an Enumeration to a Vector of {@code NameDefinition}.
     *
     * @return  The Enumeration.
     */
    public abstract Iterator<NameDefinition> getNameDefinitions();

    /**
     * Returns the {@code BookSettings}.
     *
     * @return  The Enumeration.
     */
    public abstract BookSettings getSettings();

    /**
     * Returns an Enumeration to a Vector of {@code ColumnRowInfo}.
     *
     * @return  The Enumeration.
     */
    public abstract Iterator<ColumnRowInfo> getColumnRowInfos();

    /**
     * Returns the number of populated rows in the current WorkSheet.
     *
     * @return  the number of populated rows in the current WorkSheet.
     */
    public abstract int getNumberOfRows();

    /**
     * Returns the number of populated columns in the current WorkSheet.
     *
     * @return  The number of populated columns in the current WorkSheet.
     */
    public abstract int getNumberOfColumns();

    /**
     * Returns the name of the current WorkSheet.
     *
     * @return  Name of the current WorkSheet.
     */
    public abstract String getSheetName();

    /**
     * Returns the number of the active column.
     *
     * @return  The number of the active column.
     */
    public abstract int getColNumber();

    /**
     * Returns the number of the active row.
     *
     * @return  The number of the active row.
     */
    public abstract int getRowNumber();

    /**
     * Sets the active WorkSheet.
     *
     * @param   sheetIndex  The index of the sheet to be made active.
     *
     * @throws  IOException  If any I/O error occurs.
     */
    public abstract void setWorksheet(int sheetIndex) throws IOException;

    /**
     * Move on the next populated cell in the current WorkSheet.
     *
     * @return  {@code true} if successful, {@code false} otherwise.
     *
     * @throws  IOException  If any I/O error occurs.
     */
    public abstract boolean goToNextCell() throws IOException;

    /**
     * Return the contents of the active cell.
     *
     * @return  The cell contents.
     */
    public abstract String getCellContents();

    /**
     * Return the value of the active cell.
     *
     * <p>Used in the case of Formula where the cell contents and the cell
     * value are not the same thing.</p>
     *
     *  @return  The cell value.
     */
    public abstract String getCellValue();

    /**
     * Return the data type of the active cell.
     *
     * @return  The cell data type.
     */
    public abstract String getCellDataType();

    /**
     * Return a {@code Format} object describing the active cells formatting.
     *
     * @return  {@code Format} object for the cell.
     */
    public abstract Format getCellFormat();

    /**
     * Add the contents of a {@code ConvertData} to the workbook.
     *
     * @param   cd  The {@code ConvertData} containing the content.
     *
     * @throws  IOException  If any I/O error occurs.
     */
    public abstract void addDeviceContent(ConvertData cd) throws IOException;
}