|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.android.tools.lint.detector.api.Context
com.android.tools.lint.detector.api.JavaContext
public class JavaContext
A Context used when checking Java files.
| Field Summary |
|---|
| Fields inherited from class com.android.tools.lint.detector.api.Context |
|---|
file, mDriver |
| Constructor Summary | |
|---|---|
JavaContext(LintDriver driver,
Project project,
Project main,
java.io.File file,
JavaParser parser)
Constructs a JavaContext for running lint on the given file, with
the given scope, in the given project reporting errors to the given
client. |
|
| Method Summary | ||
|---|---|---|
Location.Handle |
createLocationHandle(lombok.ast.Node node)
|
|
JavaParser.ResolvedClass |
findClass(java.lang.String fullyQualifiedName)
|
|
static lombok.ast.Node |
findNameNode(lombok.ast.Node node)
Searches for a name node corresponding to the given node |
|
static lombok.ast.ClassDeclaration |
findSurroundingClass(lombok.ast.Node scope)
|
|
static lombok.ast.Node |
findSurroundingMethod(lombok.ast.Node scope)
|
|
static lombok.ast.Node |
getArgumentNode(lombok.ast.MethodInvocation call,
int index)
Returns the given argument of the given call |
|
lombok.ast.Node |
getCompilationUnit()
|
|
Location |
getLocation(lombok.ast.Node node)
Returns a location for the given node |
|
static java.lang.String |
getMethodName(lombok.ast.Node call)
|
|
Location |
getNameLocation(lombok.ast.Node node)
Returns a Location for the given node. |
|
static
|
getNextSiblingOfType(lombok.ast.Node sibling,
java.lang.Class<T> clz)
Returns the first sibling of the given node that is of the given class |
|
static lombok.ast.Node |
getParameter(lombok.ast.Node call,
int parameter)
|
|
static java.util.Iterator<lombok.ast.Expression> |
getParameters(lombok.ast.Node call)
|
|
static
|
getParentOfType(lombok.ast.Node element,
java.lang.Class<T> clz)
Returns the first ancestor node of the given type |
|
static
|
getParentOfType(lombok.ast.Node element,
java.lang.Class<T> clz,
boolean strict)
Returns the first ancestor node of the given type |
|
static
|
getParentOfType(lombok.ast.Node element,
java.lang.Class<T> clz,
boolean strict,
java.lang.Class<? extends lombok.ast.Node>... terminators)
Returns the first ancestor node of the given type, stopping at the given type |
|
JavaParser |
getParser()
|
|
Location |
getRangeLocation(lombok.ast.Node from,
int fromDelta,
lombok.ast.Node to,
int toDelta)
Returns a location for the given node range (from the starting offset of the first node to the ending offset of the second node). |
|
protected java.lang.String |
getSuppressCommentPrefix()
Returns the comment marker used in Studio to suppress statements for language, if any |
|
JavaParser.TypeDescriptor |
getType(lombok.ast.Node node)
|
|
boolean |
isContextMethod(lombok.ast.MethodInvocation node)
Returns true if the given method invocation node corresponds to a call on a android.content.Context |
|
boolean |
isSuppressedWithComment(lombok.ast.Node scope,
Issue issue)
|
|
void |
report(Issue issue,
Location location,
java.lang.String message)
Reports an issue. |
|
void |
report(Issue issue,
lombok.ast.Node scope,
Location location,
java.lang.String message)
Reports an issue applicable to a given AST node. |
|
void |
report(Issue issue,
lombok.ast.Node scope,
Location location,
java.lang.String message,
java.lang.Object data)
Deprecated. Use report(Issue, Node, Location, String) instead;
this method is here for custom rule compatibility |
|
JavaParser.ResolvedNode |
resolve(lombok.ast.Node node)
|
|
void |
setCompilationUnit(lombok.ast.Node compilationUnit)
Sets the compilation result. |
|
| Methods inherited from class com.android.tools.lint.detector.api.Context |
|---|
containsCommentSuppress, getClient, getConfiguration, getContents, getDriver, getMainProject, getPhase, getProject, getProperty, getScope, getSdkInfo, isEnabled, isSuppressedWithComment, log, report, requestRepeat, setProperty |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public JavaContext(@NonNull
LintDriver driver,
@NonNull
Project project,
@Nullable
Project main,
@NonNull
java.io.File file,
@NonNull
JavaParser parser)
JavaContext for running lint on the given file, with
the given scope, in the given project reporting errors to the given
client.
driver - the driver running through the checksproject - the project to run lint on which contains the given filemain - the main project if this project is a library project, or
null if this is not a library project. The main project is
the root project of all library projects, not necessarily the
directly including project.file - the file to be analyzedparser - the parser to use| Method Detail |
|---|
@NonNull
public Location getLocation(@NonNull
lombok.ast.Node node)
node - the AST node to get a location for
@NonNull
public Location getRangeLocation(@NonNull
lombok.ast.Node from,
int fromDelta,
@NonNull
lombok.ast.Node to,
int toDelta)
from - the AST node to get a starting location fromfromDelta - Offset delta to apply to the starting offsetto - the AST node to get a ending location fromtoDelta - Offset delta to apply to the ending offset
@NonNull
public Location getNameLocation(@NonNull
lombok.ast.Node node)
Location for the given node. This attempts to pick a shorter
location range than the entire node; for a class or method for example, it picks
the name node (if found). For statement constructs such as a switch statement
it will highlight the keyword, etc.
node - the AST node to create a location for
@NonNull public JavaParser getParser()
@Nullable public lombok.ast.Node getCompilationUnit()
public void setCompilationUnit(@Nullable
lombok.ast.Node compilationUnit)
compilationUnit - the parse tree
public void report(@NonNull
Issue issue,
@Nullable
Location location,
@NonNull
java.lang.String message)
ContextLintClient.report(com.android.tools.lint.detector.api.Context, com.android.tools.lint.detector.api.Issue, com.android.tools.lint.detector.api.Severity, com.android.tools.lint.detector.api.Location, java.lang.String, com.android.tools.lint.detector.api.TextFormat)
report in class Contextissue - the issue to reportlocation - the location of the issue, or null if not knownmessage - the message for this warning
public void report(@NonNull
Issue issue,
@Nullable
lombok.ast.Node scope,
@Nullable
Location location,
@NonNull
java.lang.String message)
issue - the issue to reportscope - the AST node scope the error applies to. The lint infrastructure
will check whether there are suppress annotations on this node (or its enclosing
nodes) and if so suppress the warning without involving the client.location - the location of the issue, or null if not knownmessage - the message for this warning
@Deprecated
public void report(@NonNull
Issue issue,
@Nullable
lombok.ast.Node scope,
@Nullable
Location location,
@NonNull
java.lang.String message,
@Nullable
java.lang.Object data)
report(Issue, Node, Location, String) instead;
this method is here for custom rule compatibility
report(Issue, Node, Location, String) but with
a now-unused data parameter at the end.
@Nullable public static lombok.ast.Node findSurroundingMethod(lombok.ast.Node scope)
@Nullable
public static lombok.ast.ClassDeclaration findSurroundingClass(@Nullable
lombok.ast.Node scope)
@Nullable protected java.lang.String getSuppressCommentPrefix()
Context
getSuppressCommentPrefix in class Context
public boolean isSuppressedWithComment(@NonNull
lombok.ast.Node scope,
@NonNull
Issue issue)
@NonNull
public Location.Handle createLocationHandle(@NonNull
lombok.ast.Node node)
@Nullable
public JavaParser.ResolvedNode resolve(@NonNull
lombok.ast.Node node)
@Nullable
public JavaParser.ResolvedClass findClass(@NonNull
java.lang.String fullyQualifiedName)
@Nullable
public JavaParser.TypeDescriptor getType(@NonNull
lombok.ast.Node node)
@Nullable
public static java.lang.String getMethodName(@NonNull
lombok.ast.Node call)
@Nullable
public static lombok.ast.Node findNameNode(@NonNull
lombok.ast.Node node)
@NonNull
public static java.util.Iterator<lombok.ast.Expression> getParameters(@NonNull
lombok.ast.Node call)
@Nullable
public static lombok.ast.Node getParameter(@NonNull
lombok.ast.Node call,
int parameter)
public boolean isContextMethod(@NonNull
lombok.ast.MethodInvocation node)
android.content.Context
node - the method call node
@Nullable
public static <T extends lombok.ast.Node> T getParentOfType(@Nullable
lombok.ast.Node element,
@NonNull
java.lang.Class<T> clz)
T - the target node typeelement - the element to search fromclz - the target node type
@Nullable
public static <T extends lombok.ast.Node> T getParentOfType(@Nullable
lombok.ast.Node element,
@NonNull
java.lang.Class<T> clz,
boolean strict)
T - the target node typeelement - the element to search fromclz - the target node typestrict - if true, do not consider the element itself, only its parents
@Nullable
public static <T extends lombok.ast.Node> T getParentOfType(@Nullable
lombok.ast.Node element,
@NonNull
java.lang.Class<T> clz,
boolean strict,
@NonNull
java.lang.Class<? extends lombok.ast.Node>... terminators)
T - the target node typeelement - the element to search fromclz - the target node typestrict - if true, do not consider the element itself, only its parentsterminators - optional node types to terminate the search at
@Nullable
public static <T extends lombok.ast.Node> T getNextSiblingOfType(@Nullable
lombok.ast.Node sibling,
@NonNull
java.lang.Class<T> clz)
T - the typesibling - the sibling to search fromclz - the type to look for
@NonNull
public static lombok.ast.Node getArgumentNode(@NonNull
lombok.ast.MethodInvocation call,
int index)
call - the call containing argumentsindex - the index of the target argument
java.lang.IllegalArgumentException - if index is outside the valid range
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||