All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.tablesaw.io.AddCellToColumnException Maven / Gradle / Ivy

There is a newer version: 0.43.1
Show newest version
/*
 * Licensed 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
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package tech.tablesaw.io;

import java.io.PrintStream;
import java.util.List;

/**
 * This Exception wraps another Exception thrown while adding a cell to a column.
 * 

* The methods of this exception allow the causing Exception, row number, * column index, columnNames and line to be retrieved. *

* The dumpRow method allows the row in question to be printed to a * a PrintStream such as System.out */ public class AddCellToColumnException extends RuntimeException { private static final long serialVersionUID = 1L; /** * The index of the column that threw the Exception */ private final int columnIndex; /** * The number of the row that caused the exception to be thrown */ private final long rowNumber; /** * The column names stored as an array */ private final List columnNames; /** * The original line that caused the Exception */ private final String[] line; /** * Creates a new instance of this Exception * * @param e The Exceeption that caused adding to fail * @param columnIndex The index of the column that threw the Exception * @param rowNumber The number of the row that caused the Exception to be thrown * @param columnNames The column names stored as an array * @param line The original line that caused the Exception */ public AddCellToColumnException(Exception e, int columnIndex, long rowNumber, List columnNames, String[] line) { super("Error while adding cell from row " + rowNumber + " and column " + columnNames.get(columnIndex) + "" + "(position:" + columnIndex + "): " + e.getMessage(), e); this.columnIndex = columnIndex; this.rowNumber = rowNumber; this.columnNames = columnNames; this.line = line; } /** * Returns the index of the column that threw the Exception */ public int getColumnIndex() { return columnIndex; } /** * Returns the number of the row that caused the Exception to be thrown */ public long getRowNumber() { return rowNumber; } /** * Returns the column names array */ public List getColumnNames() { return columnNames; } /** * Returns the name of the column that caused the Exception */ public String getColumnName() { return columnNames.get(columnIndex); } /** * Dumps to a PrintStream the information relative to the row that caused the problem * * @param out The PrintStream to output to */ public void dumpRow(PrintStream out) { for (int i = 0; i < columnNames.size(); i++) { out.print("Column "); out.print(i); out.print(" "); out.print(columnNames.get(columnIndex)); out.print(" : "); try { out.println(line[i]); } catch (ArrayIndexOutOfBoundsException aioobe) { out.println("Unable to get cell " + i + " of this line"); } } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy