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.api; 12 13 import org.csveed.report.RowReport; 14 15 /** 16 * The original header of the CSV file. 17 */ 18 public interface Header extends Iterable<String> { 19 20 /** 21 * Number of columns. 22 * 23 * @return the number of columns 24 */ 25 int size(); 26 27 /** 28 * Gets the name of the header column with passed index. 29 * 30 * @param indexColumn 31 * column index to find the name for 32 * 33 * @return name of the header column 34 */ 35 String getName(int indexColumn); 36 37 /** 38 * Gets the index column of the first column with a certain name. 39 * 40 * @param columnName 41 * column name to find the index for 42 * 43 * @return index of the header column 44 */ 45 int getIndex(String columnName); 46 47 /** 48 * Generate an error report on the header row. 49 * 50 * @return error report on the header row 51 */ 52 RowReport reportOnEndOfLine(); 53 54 }