1 /*
2 * Copyright 2009 Olivier Godineau
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy of
6 * the License at http://www.apache.org/licenses/LICENSE-2.0
7 *
8 * Unless required by applicable law or agreed to in writing, software
9 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11 * License for the specific language governing permissions and limitations under
12 * the License.
13 */
14 package olg.csv.base;
15
16 import java.io.Closeable;
17
18 /**
19 * Writer Interface.
20 *
21 * @author Olivier Godineau
22 *
23 */
24 public interface IWriter extends Closeable {
25
26 /**
27 * Adds a row.
28 *
29 * <p>
30 * The first row allows to define the size used along writing unless
31 * {@link #addLine(String[])} had been used first.
32 * </p>
33 * <p>
34 * Throws a WriterException when row size differs from initial size or row
35 * num is lesser than the expected next number line. Or if I/O error occurs
36 * during writing.
37 * </p>
38 *
39 * @param row
40 * the row. It's possible to use a row with no cells. In this
41 * case, an empty line(a line wich all fields are null) is added.
42 * It's possible to use a row with a num greater than the
43 * expected number. In this case, empty lines are wroten as much
44 * as necessary. It's possible to use row which all cells are not
45 * specified. In this case the missing cells are added as empty
46 * cells. Must be not null with cells correctly ordered and
47 * size>0.
48 */
49 void addRow(Row row);
50
51 /**
52 * Adds a row from the given String array. The first time this method define
53 * the size ( as the given string array length) used along writing unless
54 * {@link #addRow(Row)} had been used first.
55 * <p>
56 * Throws a WriterException when line size differs from initial size.
57 * </p>
58 *
59 * @param values
60 * the row. Must be not <code>null</code> with length >0. .
61 *
62 */
63 void addLine(String[] values);
64
65 /**
66 * Indicates if the file has a headers line.
67 *
68 * @return true if the file has a headers line.
69 */
70 boolean isWithHeaders();
71 }