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

com.ebay.xcelite.sheet.DataMarshaller Maven / Gradle / Ivy

package com.ebay.xcelite.sheet;

import com.ebay.xcelite.options.XceliteOptions;

/**
 * Generic base interface for configurable reader and writer classes,
 * extended by {@link com.ebay.xcelite.reader.SheetReader} and
 * {@link com.ebay.xcelite.writer.SheetWriter}
 *
 * @author Johannes
 * @since 1.2
 */
public interface DataMarshaller {

    /**
     * Does this reader or writer expect the spreadsheet to have
     * a header row containing column names?
     * @return Whether a header row is expected
     */
    boolean expectsHeaderRow();

    /**
     * In the current, concrete usage, has the user overridden
     * {@link #expectsHeaderRow()} via {@link XceliteOptions#setHasHeaderRow(boolean)}?
     * If yes, use the setting from options, if no, use the default
     * setting for the reader/writer
     * @return whether the current {@link XceliteSheet} has a header row
     */
    boolean hasHeaderRow();

    /**
     * Gets the {@link XceliteOptions} object used to configure the writer's
     * behavior
     * @return configuration object
     * @since 1.2
     */
    XceliteOptions getOptions();

    /**
     * Sets the {@link XceliteOptions} object used to configure the writer's
     * behavior
     * @param options configuration object
     * @since 1.2
     */
    void setOptions(XceliteOptions options);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy