public class ApiDetector
extends com.android.tools.lint.detector.api.ResourceXmlDetector
implements com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.JavaScanner
com.android.tools.lint.detector.api.Detector.ClassScanner, com.android.tools.lint.detector.api.Detector.JavaScanner, com.android.tools.lint.detector.api.Detector.OtherFileScanner, com.android.tools.lint.detector.api.Detector.XmlScanner
Modifier and Type | Field and Description |
---|---|
static com.android.tools.lint.detector.api.Issue |
INLINED
Accessing an inlined API on older platforms
|
protected ApiLookup |
mApiDatabase |
static com.android.tools.lint.detector.api.Issue |
OVERRIDE
Accessing an unsupported API
|
static com.android.tools.lint.detector.api.Issue |
UNSUPPORTED
Accessing an unsupported API
|
Constructor and Description |
---|
ApiDetector()
Constructs a new API check
|
Modifier and Type | Method and Description |
---|---|
void |
afterCheckProject(com.android.tools.lint.detector.api.Context context) |
boolean |
appliesTo(com.android.resources.ResourceFolderType folderType) |
void |
beforeCheckProject(com.android.tools.lint.detector.api.Context context) |
void |
checkClass(com.android.tools.lint.detector.api.ClassContext context,
org.objectweb.asm.tree.ClassNode classNode) |
lombok.ast.AstVisitor |
createJavaVisitor(com.android.tools.lint.detector.api.JavaContext context) |
java.util.Collection<java.lang.String> |
getApplicableAttributes() |
java.util.Collection<java.lang.String> |
getApplicableElements() |
java.util.List<java.lang.Class<? extends lombok.ast.Node>> |
getApplicableNodeTypes() |
protected int |
getMinSdk(com.android.tools.lint.detector.api.Context context) |
com.android.tools.lint.detector.api.Speed |
getSpeed() |
static boolean |
isBenignConstantUsage(lombok.ast.Node node,
java.lang.String name,
java.lang.String owner)
Checks whether the given instruction is a benign usage of a constant defined in
a later version of Android than the application's
minSdkVersion . |
void |
visitAttribute(com.android.tools.lint.detector.api.XmlContext context,
org.w3c.dom.Attr attribute) |
void |
visitElement(com.android.tools.lint.detector.api.XmlContext context,
org.w3c.dom.Element element) |
afterCheckFile, afterCheckLibraryProject, appliesToFolder, appliesToResourceRefs, beforeCheckFile, beforeCheckLibraryProject, checkCall, checkInstruction, getApplicableAsmNodeTypes, getApplicableCallNames, getApplicableCallOwners, getApplicableFiles, getApplicableMethodNames, visitDocument, visitElementAfter, visitMethod, visitResourceReference
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
checkCall, checkInstruction, getApplicableAsmNodeTypes, getApplicableCallNames, getApplicableCallOwners
public static final com.android.tools.lint.detector.api.Issue UNSUPPORTED
public static final com.android.tools.lint.detector.api.Issue INLINED
public static final com.android.tools.lint.detector.api.Issue OVERRIDE
protected ApiLookup mApiDatabase
@NonNull public com.android.tools.lint.detector.api.Speed getSpeed()
getSpeed
in class com.android.tools.lint.detector.api.Detector
public void beforeCheckProject(@NonNull com.android.tools.lint.detector.api.Context context)
beforeCheckProject
in class com.android.tools.lint.detector.api.Detector
public boolean appliesTo(@NonNull com.android.resources.ResourceFolderType folderType)
appliesTo
in class com.android.tools.lint.detector.api.ResourceXmlDetector
public java.util.Collection<java.lang.String> getApplicableElements()
getApplicableElements
in interface com.android.tools.lint.detector.api.Detector.XmlScanner
getApplicableElements
in class com.android.tools.lint.detector.api.Detector
public java.util.Collection<java.lang.String> getApplicableAttributes()
getApplicableAttributes
in interface com.android.tools.lint.detector.api.Detector.XmlScanner
getApplicableAttributes
in class com.android.tools.lint.detector.api.Detector
public void visitAttribute(@NonNull com.android.tools.lint.detector.api.XmlContext context, @NonNull org.w3c.dom.Attr attribute)
visitAttribute
in interface com.android.tools.lint.detector.api.Detector.XmlScanner
visitAttribute
in class com.android.tools.lint.detector.api.Detector
public void visitElement(@NonNull com.android.tools.lint.detector.api.XmlContext context, @NonNull org.w3c.dom.Element element)
visitElement
in interface com.android.tools.lint.detector.api.Detector.XmlScanner
visitElement
in class com.android.tools.lint.detector.api.Detector
protected int getMinSdk(com.android.tools.lint.detector.api.Context context)
public void checkClass(@NonNull com.android.tools.lint.detector.api.ClassContext context, @NonNull org.objectweb.asm.tree.ClassNode classNode)
checkClass
in interface com.android.tools.lint.detector.api.Detector.ClassScanner
checkClass
in class com.android.tools.lint.detector.api.Detector
public void afterCheckProject(@NonNull com.android.tools.lint.detector.api.Context context)
afterCheckProject
in class com.android.tools.lint.detector.api.Detector
@Nullable public lombok.ast.AstVisitor createJavaVisitor(@NonNull com.android.tools.lint.detector.api.JavaContext context)
createJavaVisitor
in interface com.android.tools.lint.detector.api.Detector.JavaScanner
createJavaVisitor
in class com.android.tools.lint.detector.api.Detector
@Nullable public java.util.List<java.lang.Class<? extends lombok.ast.Node>> getApplicableNodeTypes()
getApplicableNodeTypes
in interface com.android.tools.lint.detector.api.Detector.JavaScanner
getApplicableNodeTypes
in class com.android.tools.lint.detector.api.Detector
public static boolean isBenignConstantUsage(@Nullable lombok.ast.Node node, @NonNull java.lang.String name, @NonNull java.lang.String owner)
minSdkVersion
.node
- the instruction to checkname
- the name of the constantowner
- the field owner