com.android.tools.lint.checks
Class GradleDetector

java.lang.Object
  extended by com.android.tools.lint.detector.api.Detector
      extended by com.android.tools.lint.checks.GradleDetector
All Implemented Interfaces:
com.android.tools.lint.detector.api.Detector.GradleScanner

public class GradleDetector
extends com.android.tools.lint.detector.api.Detector
implements com.android.tools.lint.detector.api.Detector.GradleScanner

Checks Gradle files for potential errors


Nested Class Summary
 
Nested classes/interfaces inherited from class com.android.tools.lint.detector.api.Detector
com.android.tools.lint.detector.api.Detector.BinaryResourceScanner, com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.GradleScanner, com.android.tools.lint.detector.api.Detector.JavaScanner, com.android.tools.lint.detector.api.Detector.OtherFileScanner, com.android.tools.lint.detector.api.Detector.ResourceFolderScanner, com.android.tools.lint.detector.api.Detector.XmlScanner
 
Field Summary
static com.android.tools.lint.detector.api.Issue ACCIDENTAL_OCTAL
          Accidentally using octal numbers
static java.lang.String APP_PLUGIN_ID
          The Gradle plugin ID for Android applications
static com.android.tools.lint.detector.api.Issue COMPATIBILITY
          Using incompatible versions
static com.android.tools.lint.detector.api.Issue DEPENDENCY
          Obsolete dependencies
static com.android.tools.lint.detector.api.Issue DEPRECATED
          Deprecated Gradle constructs
static com.android.tools.lint.detector.api.Issue GRADLE_GETTER
          Accidentally calling a getter instead of your own methods
static com.android.tools.lint.detector.api.Issue GRADLE_PLUGIN_COMPATIBILITY
          Incompatible Android Gradle plugin
static com.android.tools.lint.detector.api.Issue IDE_SUPPORT
          Constructs the IDE support struggles with
static com.android.tools.lint.detector.api.Issue IMPROPER_PROJECT_LEVEL_STATEMENT
          A statement appearing at the root of the top-level build file that shouldn't be there
static java.lang.String LIB_PLUGIN_ID
          The Gradle plugin ID for Android libraries
static com.android.tools.lint.detector.api.Issue MISPLACED_STATEMENT
          A statement appearing within the wrong scope of a build file
static java.lang.String OLD_APP_PLUGIN_ID
          Previous plugin id for applications
static java.lang.String OLD_LIB_PLUGIN_ID
          Previous plugin id for libraries
static com.android.tools.lint.detector.api.Issue PATH
          Invalid or dangerous paths
static com.android.tools.lint.detector.api.Issue PLUS
          Using + in versions
static com.android.tools.lint.detector.api.Issue REMOTE_VERSION
           
static com.android.tools.lint.detector.api.Issue STRING_INTEGER
          Using a string where an integer is expected
 
Constructor Summary
GradleDetector()
           
 
Method Summary
 void afterCheckFile(com.android.tools.lint.detector.api.Context context)
           
 boolean appliesTo(com.android.tools.lint.detector.api.Context context, java.io.File file)
           
protected  void checkBlock(com.android.tools.lint.detector.api.Context context, java.lang.String block, java.lang.String parent, java.lang.Object cookie)
           
protected  void checkDslPropertyAssignment(com.android.tools.lint.detector.api.Context context, java.lang.String property, java.lang.String value, java.lang.String parent, java.lang.String parentParent, java.lang.Object valueCookie, java.lang.Object statementCookie)
          Called with for example "android", "defaultConfig", "minSdkVersion", "7"
protected  void checkMethodCall(com.android.tools.lint.detector.api.Context context, java.lang.String statement, java.lang.String parent, java.util.Map<java.lang.String,java.lang.String> namedArguments, java.util.List<java.lang.String> unnamedArguments, java.lang.Object cookie)
           
protected  void checkOctal(com.android.tools.lint.detector.api.Context context, java.lang.String value, java.lang.Object cookie)
           
protected  com.android.tools.lint.detector.api.Location createLocation(com.android.tools.lint.detector.api.Context context, java.lang.Object cookie)
           
protected  java.lang.Object getPropertyKeyCookie(java.lang.Object cookie)
           
protected  java.lang.Object getPropertyPairCookie(java.lang.Object cookie)
           
 com.android.tools.lint.detector.api.Speed getSpeed(com.android.tools.lint.detector.api.Issue issue)
           
protected  int getStartOffset(com.android.tools.lint.detector.api.Context context, java.lang.Object cookie)
           
protected static boolean isInterestingBlock(java.lang.String parent, java.lang.String parentParent)
           
protected static boolean isInterestingProperty(java.lang.String property, java.lang.String parent, java.lang.String parentParent)
           
protected static boolean isInterestingStatement(java.lang.String statement, java.lang.String parent)
           
 void visitBuildScript(com.android.tools.lint.detector.api.Context context, java.util.Map<java.lang.String,java.lang.Object> sharedData)
           
 
Methods inherited from class com.android.tools.lint.detector.api.Detector
afterCheckLibraryProject, afterCheckProject, appliesTo, appliesToFolder, appliesToResourceRefs, beforeCheckFile, beforeCheckLibraryProject, beforeCheckProject, checkBinaryResource, checkCall, checkClass, checkFolder, checkInstruction, createJavaVisitor, getApplicableAsmNodeTypes, getApplicableAttributes, getApplicableCallNames, getApplicableCallOwners, getApplicableElements, getApplicableFiles, getApplicableMethodNames, getApplicableNodeTypes, getSpeed, run, visitAttribute, visitDocument, visitElement, visitElementAfter, visitMethod, visitResourceReference
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEPENDENCY

public static final com.android.tools.lint.detector.api.Issue DEPENDENCY
Obsolete dependencies


DEPRECATED

public static final com.android.tools.lint.detector.api.Issue DEPRECATED
Deprecated Gradle constructs


GRADLE_PLUGIN_COMPATIBILITY

public static final com.android.tools.lint.detector.api.Issue GRADLE_PLUGIN_COMPATIBILITY
Incompatible Android Gradle plugin


PATH

public static final com.android.tools.lint.detector.api.Issue PATH
Invalid or dangerous paths


IDE_SUPPORT

public static final com.android.tools.lint.detector.api.Issue IDE_SUPPORT
Constructs the IDE support struggles with


PLUS

public static final com.android.tools.lint.detector.api.Issue PLUS
Using + in versions


GRADLE_GETTER

public static final com.android.tools.lint.detector.api.Issue GRADLE_GETTER
Accidentally calling a getter instead of your own methods


COMPATIBILITY

public static final com.android.tools.lint.detector.api.Issue COMPATIBILITY
Using incompatible versions


STRING_INTEGER

public static final com.android.tools.lint.detector.api.Issue STRING_INTEGER
Using a string where an integer is expected


REMOTE_VERSION

public static final com.android.tools.lint.detector.api.Issue REMOTE_VERSION

ACCIDENTAL_OCTAL

public static final com.android.tools.lint.detector.api.Issue ACCIDENTAL_OCTAL
Accidentally using octal numbers


IMPROPER_PROJECT_LEVEL_STATEMENT

public static final com.android.tools.lint.detector.api.Issue IMPROPER_PROJECT_LEVEL_STATEMENT
A statement appearing at the root of the top-level build file that shouldn't be there


MISPLACED_STATEMENT

public static final com.android.tools.lint.detector.api.Issue MISPLACED_STATEMENT
A statement appearing within the wrong scope of a build file


APP_PLUGIN_ID

public static final java.lang.String APP_PLUGIN_ID
The Gradle plugin ID for Android applications

See Also:
Constant Field Values

LIB_PLUGIN_ID

public static final java.lang.String LIB_PLUGIN_ID
The Gradle plugin ID for Android libraries

See Also:
Constant Field Values

OLD_APP_PLUGIN_ID

public static final java.lang.String OLD_APP_PLUGIN_ID
Previous plugin id for applications

See Also:
Constant Field Values

OLD_LIB_PLUGIN_ID

public static final java.lang.String OLD_LIB_PLUGIN_ID
Previous plugin id for libraries

See Also:
Constant Field Values
Constructor Detail

GradleDetector

public GradleDetector()
Method Detail

appliesTo

public boolean appliesTo(@NonNull
                         com.android.tools.lint.detector.api.Context context,
                         @NonNull
                         java.io.File file)
Overrides:
appliesTo in class com.android.tools.lint.detector.api.Detector

getSpeed

@NonNull
public com.android.tools.lint.detector.api.Speed getSpeed(@NonNull
                                                                  com.android.tools.lint.detector.api.Issue issue)
Overrides:
getSpeed in class com.android.tools.lint.detector.api.Detector

visitBuildScript

public void visitBuildScript(@NonNull
                             com.android.tools.lint.detector.api.Context context,
                             java.util.Map<java.lang.String,java.lang.Object> sharedData)
Specified by:
visitBuildScript in interface com.android.tools.lint.detector.api.Detector.GradleScanner
Overrides:
visitBuildScript in class com.android.tools.lint.detector.api.Detector

isInterestingBlock

protected static boolean isInterestingBlock(@NonNull
                                            java.lang.String parent,
                                            @Nullable
                                            java.lang.String parentParent)

isInterestingStatement

protected static boolean isInterestingStatement(@NonNull
                                                java.lang.String statement,
                                                @Nullable
                                                java.lang.String parent)

isInterestingProperty

protected static boolean isInterestingProperty(@NonNull
                                               java.lang.String property,
                                               @NonNull
                                               java.lang.String parent,
                                               @Nullable
                                               java.lang.String parentParent)

checkOctal

protected void checkOctal(@NonNull
                          com.android.tools.lint.detector.api.Context context,
                          @NonNull
                          java.lang.String value,
                          @NonNull
                          java.lang.Object cookie)

checkDslPropertyAssignment

protected void checkDslPropertyAssignment(@NonNull
                                          com.android.tools.lint.detector.api.Context context,
                                          @NonNull
                                          java.lang.String property,
                                          @NonNull
                                          java.lang.String value,
                                          @NonNull
                                          java.lang.String parent,
                                          @Nullable
                                          java.lang.String parentParent,
                                          @NonNull
                                          java.lang.Object valueCookie,
                                          @NonNull
                                          java.lang.Object statementCookie)
Called with for example "android", "defaultConfig", "minSdkVersion", "7"


checkBlock

protected void checkBlock(@NonNull
                          com.android.tools.lint.detector.api.Context context,
                          @NonNull
                          java.lang.String block,
                          @Nullable
                          java.lang.String parent,
                          @NonNull
                          java.lang.Object cookie)

checkMethodCall

protected void checkMethodCall(@NonNull
                               com.android.tools.lint.detector.api.Context context,
                               @NonNull
                               java.lang.String statement,
                               @Nullable
                               java.lang.String parent,
                               @NonNull
                               java.util.Map<java.lang.String,java.lang.String> namedArguments,
                               @NonNull
                               java.util.List<java.lang.String> unnamedArguments,
                               @NonNull
                               java.lang.Object cookie)

afterCheckFile

public void afterCheckFile(@NonNull
                           com.android.tools.lint.detector.api.Context context)
Overrides:
afterCheckFile in class com.android.tools.lint.detector.api.Detector

getPropertyKeyCookie

@NonNull
protected java.lang.Object getPropertyKeyCookie(@NonNull
                                                        java.lang.Object cookie)

getPropertyPairCookie

@NonNull
protected java.lang.Object getPropertyPairCookie(@NonNull
                                                         java.lang.Object cookie)

getStartOffset

protected int getStartOffset(@NonNull
                             com.android.tools.lint.detector.api.Context context,
                             @NonNull
                             java.lang.Object cookie)

createLocation

protected com.android.tools.lint.detector.api.Location createLocation(@NonNull
                                                                      com.android.tools.lint.detector.api.Context context,
                                                                      @NonNull
                                                                      java.lang.Object cookie)