public class GradleDetector
extends com.android.tools.lint.detector.api.Detector
implements com.android.tools.lint.detector.api.Detector.GradleScanner
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.JavaPsiScanner, 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
Modifier and Type | Field and Description |
---|---|
static com.android.tools.lint.detector.api.Issue |
ACCIDENTAL_OCTAL
Accidentally using octal numbers
|
static java.lang.String |
ANDROID_WEAR_GROUP_ID |
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 java.lang.String |
GMS_GROUP_ID
Group ID for GMS
|
static java.lang.String |
GOOGLE_SUPPORT_GROUP_ID |
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 java.lang.String |
LIB_PLUGIN_ID
The Gradle plugin ID for Android libraries
|
static com.android.tools.lint.detector.api.Issue |
NOT_INTERPOLATED
Attempting to use substitution with single quotes
|
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
A newer version is available on a remote server
|
static com.android.tools.lint.detector.api.Issue |
STRING_INTEGER
Using a string where an integer is expected
|
Constructor and Description |
---|
GradleDetector() |
Modifier and Type | Method and Description |
---|---|
void |
afterCheckProject(com.android.tools.lint.detector.api.Context context) |
boolean |
appliesTo(com.android.tools.lint.detector.api.Context context,
java.io.File file) |
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) |
static com.android.builder.model.Dependencies |
getCompileDependencies(com.android.builder.model.AndroidArtifact artifact,
com.android.ide.common.repository.GradleVersion version) |
static com.android.repository.Revision |
getLatestVersionFromRemoteRepo(com.android.tools.lint.client.api.LintClient client,
com.android.ide.common.repository.GradleCoordinate dependency,
boolean allowPreview)
TODO: Cache these results somewhere!
|
static java.lang.String |
getNewValue(com.android.tools.lint.detector.api.Issue issue,
java.lang.String errorMessage,
com.android.tools.lint.detector.api.TextFormat format)
Given an error message produced by this lint detector for the given issue type,
returns the new value to be put into the source code.
|
static java.lang.String |
getOldValue(com.android.tools.lint.detector.api.Issue issue,
java.lang.String errorMessage,
com.android.tools.lint.detector.api.TextFormat format)
Given an error message produced by this lint detector for the given issue type,
returns the old value to be replaced in the source code.
|
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) |
afterCheckFile, afterCheckLibraryProject, applicableSuperClasses, appliesTo, appliesToFolder, appliesToResourceRefs, beforeCheckFile, beforeCheckLibraryProject, beforeCheckProject, checkBinaryResource, checkCall, checkClass, checkClass, checkClass, checkFolder, checkInstruction, createJavaVisitor, createPsiVisitor, getApplicableAsmNodeTypes, getApplicableAttributes, getApplicableCallNames, getApplicableCallOwners, getApplicableConstructorTypes, getApplicableElements, getApplicableFiles, getApplicableMethodNames, getApplicableNodeTypes, getApplicablePsiTypes, getApplicableReferenceNames, getSpeed, run, visitAttribute, visitConstructor, visitConstructor, visitDocument, visitElement, visitElementAfter, visitMethod, visitMethod, visitReference, visitResourceReference, visitResourceReference
public static final com.android.tools.lint.detector.api.Issue DEPENDENCY
public static final com.android.tools.lint.detector.api.Issue DEPRECATED
public static final com.android.tools.lint.detector.api.Issue GRADLE_PLUGIN_COMPATIBILITY
public static final com.android.tools.lint.detector.api.Issue PATH
public static final com.android.tools.lint.detector.api.Issue IDE_SUPPORT
public static final com.android.tools.lint.detector.api.Issue PLUS
public static final com.android.tools.lint.detector.api.Issue GRADLE_GETTER
public static final com.android.tools.lint.detector.api.Issue COMPATIBILITY
public static final com.android.tools.lint.detector.api.Issue STRING_INTEGER
public static final com.android.tools.lint.detector.api.Issue NOT_INTERPOLATED
public static final com.android.tools.lint.detector.api.Issue REMOTE_VERSION
public static final com.android.tools.lint.detector.api.Issue ACCIDENTAL_OCTAL
public static final java.lang.String APP_PLUGIN_ID
public static final java.lang.String LIB_PLUGIN_ID
public static final java.lang.String OLD_APP_PLUGIN_ID
public static final java.lang.String OLD_LIB_PLUGIN_ID
public static final java.lang.String GMS_GROUP_ID
public static final java.lang.String GOOGLE_SUPPORT_GROUP_ID
public static final java.lang.String ANDROID_WEAR_GROUP_ID
public boolean appliesTo(@NonNull com.android.tools.lint.detector.api.Context context, @NonNull java.io.File file)
appliesTo
in class com.android.tools.lint.detector.api.Detector
@NonNull public com.android.tools.lint.detector.api.Speed getSpeed(@NonNull com.android.tools.lint.detector.api.Issue issue)
getSpeed
in class com.android.tools.lint.detector.api.Detector
public void visitBuildScript(@NonNull com.android.tools.lint.detector.api.Context context, java.util.Map<java.lang.String,java.lang.Object> sharedData)
visitBuildScript
in interface com.android.tools.lint.detector.api.Detector.GradleScanner
visitBuildScript
in class com.android.tools.lint.detector.api.Detector
protected static boolean isInterestingBlock(@NonNull java.lang.String parent, @Nullable java.lang.String parentParent)
protected static boolean isInterestingStatement(@NonNull java.lang.String statement, @Nullable java.lang.String parent)
protected static boolean isInterestingProperty(@NonNull java.lang.String property, @NonNull java.lang.String parent, @Nullable java.lang.String parentParent)
protected void checkOctal(@NonNull com.android.tools.lint.detector.api.Context context, @NonNull java.lang.String value, @NonNull java.lang.Object cookie)
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)
@Nullable public static java.lang.String getOldValue(@NonNull com.android.tools.lint.detector.api.Issue issue, @NonNull java.lang.String errorMessage, @NonNull com.android.tools.lint.detector.api.TextFormat format)
Intended for IDE quickfix implementations.
issue
- the corresponding issueerrorMessage
- the error message associated with the errorformat
- the format of the error message@Nullable public static java.lang.String getNewValue(@NonNull com.android.tools.lint.detector.api.Issue issue, @NonNull java.lang.String errorMessage, @NonNull com.android.tools.lint.detector.api.TextFormat format)
Intended for IDE quickfix implementations.
issue
- the corresponding issueerrorMessage
- the error message associated with the errorformat
- the format of the error messageprotected 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)
@Nullable public static com.android.repository.Revision getLatestVersionFromRemoteRepo(@NonNull com.android.tools.lint.client.api.LintClient client, @NonNull com.android.ide.common.repository.GradleCoordinate dependency, boolean allowPreview)
public void afterCheckProject(@NonNull com.android.tools.lint.detector.api.Context context)
afterCheckProject
in class com.android.tools.lint.detector.api.Detector
@NonNull protected java.lang.Object getPropertyKeyCookie(@NonNull java.lang.Object cookie)
@NonNull protected java.lang.Object getPropertyPairCookie(@NonNull java.lang.Object cookie)
protected int getStartOffset(@NonNull com.android.tools.lint.detector.api.Context context, @NonNull java.lang.Object cookie)
protected com.android.tools.lint.detector.api.Location createLocation(@NonNull com.android.tools.lint.detector.api.Context context, @NonNull java.lang.Object cookie)
@NonNull public static com.android.builder.model.Dependencies getCompileDependencies(@NonNull com.android.builder.model.AndroidArtifact artifact, @Nullable com.android.ide.common.repository.GradleVersion version)