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

de.aaschmid.gradle.plugins.cpd.CpdCsvFileReport Maven / Gradle / Ivy

package de.aaschmid.gradle.plugins.cpd;

import org.gradle.api.reporting.SingleFileReport;
import org.gradle.api.tasks.Input;

/**
 * The single file CSV report for code/paste (= duplication) detection.
 *
 * @see CpdPlugin
 */
public interface CpdCsvFileReport extends SingleFileReport {

    /** Default CSV separator. */
    char DEFAULT_SEPARATOR = ',';

    /** Default if line count column should be part of CSV. */
    boolean DEFAULT_INCLUDE_LINE_COUNT = true;

    /**
     * @return the separator {@link Character} used to generate CSV report; defaults to {@link #DEFAULT_SEPARATOR}.
     */
    @Input
    Character getSeparator();

    /**
     * @param separator to be used when generating the CSV report; defaults to {@link #DEFAULT_SEPARATOR}.
     * @throws org.gradle.api.InvalidUserDataException iif supplied {@code separator} is {@code null} ({@code char} cannot be wrapped by
     * Gradle internally, such that unboxable {@code null}s must be checked in setter)
     */
    void setSeparator(Character separator);

    /**
     * Note: Property is originally named {@code lineCountPerFile} and meaning is inverted, see ....
     *
     * @return if line count column should be included; defaults to {@link #DEFAULT_INCLUDE_LINE_COUNT}.
     */
    @Input
    boolean isIncludeLineCount();

    /**
     * @param includeLineCount to be used when generating the CSV report; defaults to {@link #DEFAULT_INCLUDE_LINE_COUNT}.
     */
    void setIncludeLineCount(boolean includeLineCount);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy