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

com.brsanthu.dataexporter.ExportOptions Maven / Gradle / Ivy

/*
 * #%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;

import com.brsanthu.dataexporter.util.Util;

/**
 * Base options applicable for all exporters.
 * 
 * @author Santhosh Kumar
 */
public class ExportOptions {
    
    private LineSeparatorType lineSeparator = LineSeparatorType.NATIVE;
    private boolean printHeaders = true;
    private boolean escapeHtml = false;
    private String nullString = "";
    
    public String getNullString() {
        return nullString;
    }
    
    /**
     * The string to be used for exporting if any of the row cells values are null.
     * Default is empty string.
     * 
     * @param nullString the string to be used if any of the cells are null. Cannot be null.
     * @return the this instance of export options for method chaining.
     */
    public ExportOptions setNullString(String nullString) {
        Util.checkForNotNull(nullString, "nullString");
        
        this.nullString = nullString;
        
        return this;
    }

    public boolean isEscapeHtml() {
        return escapeHtml;
    }
    
    /**
     * If set, all html unsafe characters are escaped. This is most useful if you are going to
     * show the exported data in an html. Default is false
     * 
     * @param escapeHtml
     * @return the this instance of export options for method chaining.
     */
    public ExportOptions setEscapeHtml(boolean escapeHtml) {
        this.escapeHtml = escapeHtml;
        
        return this;
    }

    public boolean isPrintHeaders() {
        return printHeaders;
    }

    /**
     * Enables or disables displaying the headers
     * 
     * @param printHeaders boolean to enable/disable the headers.
     * @return the this instance of export options for method chaining.
     */
    public ExportOptions setPrintHeaders(boolean printHeaders) {
        this.printHeaders = printHeaders;
        return this;
    }

    public LineSeparatorType getLineSeparator() {
        return lineSeparator;
    }

    public void setLineSeparator(LineSeparatorType lineSeparator) {
        this.lineSeparator = lineSeparator;
    }
    
    public String getLineSeparatorString() {
        switch(lineSeparator) {
            case UNIX:
                return "\n";
                
            case WINDOWS:
                return "\r\n";
                
            default:
                String separator = System.getProperty("line.separator");
                if (separator == null) {
                    separator = "\r\n";
                }
                return separator;
        }
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy