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

com.brsanthu.dataexporter.output.texttable.TextTableExportOptions Maven / Gradle / Ivy

Go to download

data-exporter is a Java library to export the tabular data (like List of rows) into many output formats. As of latest release, this library supports following formats.

The newest version!
/*
 * #%L
 * data-exporter
 * %%
 * Copyright (C) 2012 - 2013 http://www.brsanthu.com
 * %%
 * 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.
 * #L%
 */
package com.brsanthu.dataexporter.output.texttable;

import com.brsanthu.dataexporter.ExportOptions;
import com.brsanthu.dataexporter.model.AlignType;
import com.brsanthu.dataexporter.util.Util;

/**
 * List of options to customize the displayed text table. See the setters for more information
 * about each option. All the setters returns the same instance back to facilitate the 
 * method chaining.
 * 
 * @author Santhosh Kumar
 */
public class TextTableExportOptions extends ExportOptions {

    private AlignType headerAlignment = AlignType.MIDDLE_CENTER;
    private int repeatHeadersAfterRows = 0;
    private int minRowHeight = 0;
    private TextTableExportStyle style = TextTableExportStyle.CLASSIC;
    
    public AlignType getHeaderAlignment() {
        return headerAlignment;
    }
    
    /**
     * Sets the text alignment for header cells. Default alignment is {@link AlignType#MIDDLE_CENTER}
     * 
     * @param headerAlignment the header alignment to use. Cannot be null.
     */
    public TextTableExportOptions setHeaderAlignment(AlignType headerAlignment) {
        Util.checkForNotNull(headerAlignment, "headerAlignment");
        
        this.headerAlignment = headerAlignment;
        return this;
    }

    public TextTableExportStyle getStyle() {
        return style;
    }
    
    /**
     * Sets the style to be used while exporting the text table.
     * 
     * @param style the text table style. Cannot be null.
     */
    public TextTableExportOptions setStyle(TextTableExportStyle style) {
        Util.checkForNotNull(style, "style");
        
        this.style = style;
        return this;
    }

    public int getRepeatHeadersAfterRows() {
        return repeatHeadersAfterRows;
    }
    
    /**
     * Indicates to repeat the headers after repeatHeadersAfterRows data rows.
     * 
     * Value must be greater than zero. If value is less than or equal to zero, it is considered
     * as no-repeat.
     * 
     * @param repeatHeadersAfterRows
     */
    public TextTableExportOptions setRepeatHeadersAfterRows(int repeatHeadersAfterRows) {
        this.repeatHeadersAfterRows = repeatHeadersAfterRows;
        return this;
    }

    public int getMinRowHeight() {
        return minRowHeight;
    }

    /**
     * Minimum row height to be used while formatting the data rows. This height is not applicable
     * for header row.
     * 
     * If the value is <=0, this option is ignored.
     * 
     * @param minRowHeight
     */
    public TextTableExportOptions setMinRowHeight(int minRowHeight) {
        this.minRowHeight = minRowHeight;
        return this;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy