<commit_before>package org.csveed.api;

import java.util.Collection;
import java.util.List;
import java.util.Locale;

import org.csveed.bean.AbstractMapper;
import org.csveed.bean.conversion.Converter;

/**
* <p>
*     The CsvClient is responsible for reading/writing CSV rows and converting those into beans/rows. There are a couple
*     of ways to initialize a {@link org.csveed.api.CsvClientImpl}:
* </p>
*
* <ul>
*     <li>Just use a Reader/Writer. In this case you can only use the row functionality of CSVeed,
*         not the bean functionality</li>
*     <li>Pass a Reader or Writer and point it to class. The {@link org.csveed.annotations} in the class are read,
*         as is the order
*         of the properties within the class.</li>
*     <li>Pass a Reader or Writer and roll your own instructions. Pass a {@link org.csveed.bean.BeanInstructions}
*         implementation with your own configuration settings</li>
* </ul>
*
* @param <T> the bean class into which the rows are converted
* @author <NAME>
*/
public interface CsvClient<T> {

    /**
    * Writes a collection of Beans to the table
    * @param beans beans to write to the table
    */
    void writeBeans(Collection<T> beans);

    /**
    * Writes a single Bean to the table
    * @param bean bean to write to the table
    */
    void writeBean(T bean);

    /**
    * Writes a single row to the table
    * @param row single row
    */
    void writeRow(Row row);

    /**
    * Writes a single row (consisting of String cells) to the table
    * @param row single row
    * @return the written row
    */
    Row writeRow(String[] row);

    /**
    * Writes a collection of rows to the table
    * @param rows collections of rows
    */
    public void writeRows(Collection<Row> rows);

    /**
    * Writes a two-dimensional array of cells (rows with cells) to the table
    * @param rows two-dimensional array of cells
    */
    void writeRows(String[][] rows);

    /**
    * Writes the header to the table
    * @param header the header row
    * @return the converted Header
    */
    Header writeHeader(String[] header);

    /**
    * Writes the header to the table
    * @param header the header row
    */
    void writeHeader(Header header);

    /**
     * Writes a header based on the bean properties to the table<commit_msg>[ci] Removed missed duplicate modifier in interface<commit_after>package org.csveed.api;

import java.util.Collection;
import java.util.List;
import java.util.Locale;

import org.csveed.bean.AbstractMapper;
import org.csveed.bean.conversion.Converter;

/**
* <p>
*     The CsvClient is responsible for reading/writing CSV rows and converting those into beans/rows. There are a couple
*     of ways to initialize a {@link org.csveed.api.CsvClientImpl}:
* </p>
*
* <ul>
*     <li>Just use a Reader/Writer. In this case you can only use the row functionality of CSVeed,
*         not the bean functionality</li>
*     <li>Pass a Reader or Writer and point it to class. The {@link org.csveed.annotations} in the class are read,
*         as is the order
*         of the properties within the class.</li>
*     <li>Pass a Reader or Writer and roll your own instructions. Pass a {@link org.csveed.bean.BeanInstructions}
*         implementation with your own configuration settings</li>
* </ul>
*
* @param <T> the bean class into which the rows are converted
* @author <NAME>
*/
public interface CsvClient<T> {

    /**
    * Writes a collection of Beans to the table
    * @param beans beans to write to the table
    */
    void writeBeans(Collection<T> beans);

    /**
    * Writes a single Bean to the table
    * @param bean bean to write to the table
    */
    void writeBean(T bean);

    /**
    * Writes a single row to the table
    * @param row single row
    */
    void writeRow(Row row);

    /**
    * Writes a single row (consisting of String cells) to the table
    * @param row single row
    * @return the written row
    */
    Row writeRow(String[] row);

    /**
    * Writes a collection of rows to the table
    * @param rows collections of rows
    */
    void writeRows(Collection<Row> rows);

    /**
    * Writes a two-dimensional array of cells (rows with cells) to the table
    * @param rows two-dimensional array of cells
    */
    void writeRows(String[][] rows);

    /**
    * Writes the header to the table
    * @param header the header row
    * @return the converted Header
    */
    Header writeHeader(String[] header);

    /**
    * Writes the header to the table
    * @param header the header row
    */
    void writeHeader(Header header);

    /**
     * Writes a header based on the bean properties to the table
{'fraction_non_alphanumeric': 0.09523809523809523, 'fraction_numerical': 0.0, 'mean_word_length': 2.694006309148265, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 33, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3822487', 'n_tokens_mistral': 1378, 'n_tokens_neox': 1341, 'n_words': 560}