blob: c2ae6def4005e5c9edf674f699f14630dcb8d3b5 [file] [log] [blame]
/*
* Copyright (C) 2013 The Android Open Source Project
*
* 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.
*/
package com.android.builder.model;
import com.android.annotations.NonNull;
import com.android.annotations.Nullable;
import java.io.File;
import java.util.Set;
/**
* Options for lint.
* Example:
*
* <pre>
*
* android {
* lintOptions {
* // set to true to turn off analysis progress reporting by lint
* quiet true
* // if true, stop the gradle build if errors are found
* abortOnError false
* // if true, only report errors
* ignoreWarnings true
* // if true, emit full/absolute paths to files with errors (true by default)
* //absolutePaths true
* // if true, check all issues, including those that are off by default
* checkAllWarnings true
* // if true, treat all warnings as errors
* warningsAsErrors true
* // turn off checking the given issue id's
* disable 'TypographyFractions','TypographyQuotes'
* // turn on the given issue id's
* enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'
* // check *only* the given issue id's
* check 'NewApi', 'InlinedApi'
* // if true, don't include source code lines in the error output
* noLines true
* // if true, show all locations for an error, do not truncate lists, etc.
* showAll true
* // Fallback lint configuration (default severities, etc.)
* lintConfig file("default-lint.xml")
* // if true, generate a text report of issues (false by default)
* textReport true
* // location to write the output; can be a file or 'stdout'
* //textOutput 'stdout'
* textOutput file("lint-results.txt")
* // if true, generate an XML report for use by for example Jenkins
* xmlReport true
* // file to write report to (if not specified, defaults to lint-results.xml)
* xmlOutput file("lint-report.xml")
* // if true, generate an HTML report (with issue explanations, sourcecode, etc)
* htmlReport true
* // optional path to report (default will be lint-results.html in the builddir)
* htmlOutput file("lint-report.html")
* }
* }
* </pre>
*/
public interface LintOptions {
/**
* Returns the set of issue id's to suppress. Callers are allowed to modify this collection.
* To suppress a given issue, add the lint issue id to the returned set.
*/
@NonNull
public Set<String> getDisable();
/**
* Returns the set of issue id's to enable. Callers are allowed to modify this collection.
* To enable a given issue, add the lint issue id to the returned set.
*/
@NonNull
public Set<String> getEnable();
/**
* Returns the exact set of issues to check, or null to run the issues that are enabled
* by default plus any issues enabled via {@link #getEnable} and without issues disabled
* via {@link #getDisable}. If non-null, callers are allowed to modify this collection.
*/
@Nullable
public Set<String> getCheck();
/** Whether lint should abort the build if errors are found */
public boolean isAbortOnError();
/**
* Whether lint should display full paths in the error output. By default the paths
* are relative to the path lint was invoked from.
*/
public boolean isAbsolutePaths();
/**
* Whether lint should include the source lines in the output where errors occurred
* (true by default)
*/
public boolean isNoLines();
/**
* Returns whether lint should be quiet (for example, not show progress dots for each analyzed
* file)
*/
public boolean isQuiet();
/** Returns whether lint should check all warnings, including those off by default */
public boolean isCheckAllWarnings();
/** Returns whether lint will only check for errors (ignoring warnings) */
public boolean isIgnoreWarnings();
/** Returns whether lint should treat all warnings as errors */
public boolean isWarningsAsErrors();
/**
* Returns whether lint should include all output (e.g. include all alternate
* locations, not truncating long messages, etc.)
*/
public boolean isShowAll();
/**
* Returns an optional path to a lint.xml configuration file
*/
@Nullable
public File getLintConfig();
/** Whether we should write an text report. Default false. The location can be
* controlled by {@link #getTextOutput()}. */
public boolean getTextReport();
/**
* The optional path to where a text report should be written. The special value
* "stdout" can be used to point to standard output.
*/
@Nullable
public File getTextOutput();
/** Whether we should write an HTML report. Default true. The location can be
* controlled by {@link #getHtmlOutput()}. */
public boolean getHtmlReport();
/** The optional path to where an HTML report should be written */
@Nullable
public File getHtmlOutput();
/** Whether we should write an XML report. Default true. The location can be
* controlled by {@link #getXmlOutput()}. */
public boolean getXmlReport();
/** The optional path to where an XML report should be written */
@Nullable
public File getXmlOutput();
}