1 /*
2 * CSVeed (https://github.com/42BV/CSVeed)
3 *
4 * Copyright 2013-2023 CSVeed.
5 *
6 * All rights reserved. This program and the accompanying materials
7 * are made available under the terms of The Apache Software License,
8 * Version 2.0 which accompanies this distribution, and is available at
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 */
11 package org.csveed.row;
12
13 import java.util.Collection;
14
15 import org.csveed.api.Header;
16 import org.csveed.api.Row;
17
18 /**
19 * The Interface RowWriter.
20 */
21 public interface RowWriter {
22
23 /**
24 * Writes multiple rows with cells to the table.
25 *
26 * @param rows
27 * two-dimensional string array with rows and cells within
28 */
29 void writeRows(String[][] rows);
30
31 /**
32 * Writes multiples rows to the table.
33 *
34 * @param rows
35 * collection of rows
36 */
37 void writeRows(Collection<Row> rows);
38
39 /**
40 * Writes the cells of a table row as an individual row.
41 *
42 * @param cells
43 * the individual cells of the row
44 *
45 * @return the row just written
46 */
47 Row writeRow(String[] cells);
48
49 /**
50 * Writes a single row to the Writer.
51 *
52 * @param row
53 * row to write to the Writer
54 */
55 void writeRow(Row row);
56
57 /**
58 * Creates and sets the header of the table.
59 *
60 * @param headerNames
61 * the individual cells of the header row
62 *
63 * @return the Header, created from the header names
64 */
65 Header writeHeader(String[] headerNames);
66
67 /**
68 * Sets the header of the table.
69 *
70 * @param header
71 * the header row
72 */
73 void writeHeader(Header header);
74
75 /**
76 * The set of instructions for dealing with rows.
77 *
78 * @return row instructions
79 */
80 RowInstructions getRowInstructions();
81
82 }