@Beta public class XmlContext extends ResourceContext
Context
used when checking XML files.
NOTE: This is not a public or final API; if you rely on this be prepared to adjust your code for the next tools release.
Modifier and Type | Field and Description |
---|---|
org.w3c.dom.Document |
document
The XML document
|
Constructor and Description |
---|
XmlContext(LintDriver driver,
Project project,
Project main,
java.io.File file,
com.android.resources.ResourceFolderType folderType,
XmlParser parser)
Construct a new
XmlContext |
Modifier and Type | Method and Description |
---|---|
Location.Handle |
createLocationHandle(org.w3c.dom.Node node) |
Location |
getLocation(org.w3c.dom.Node node)
Returns the location for the given node, which may be an element or an attribute.
|
Location |
getLocation(org.w3c.dom.Node textNode,
int begin,
int end)
Creates a new location within an XML text node
|
Location |
getNameLocation(org.w3c.dom.Node node)
Returns the location for name-portion of the given element or attribute.
|
XmlParser |
getParser() |
protected java.lang.String |
getSuppressCommentPrefix()
Returns the comment marker used in Studio to suppress statements for language, if any
|
Location |
getValueLocation(org.w3c.dom.Attr node)
Returns the location for value-portion of the given attribute
|
boolean |
isSuppressedWithComment(org.w3c.dom.Node node,
Issue issue) |
void |
report(Issue issue,
Location location,
java.lang.String message)
Reports an issue.
|
void |
report(Issue issue,
org.w3c.dom.Node scope,
Location location,
java.lang.String message)
Reports an issue applicable to a given DOM node.
|
void |
report(Issue issue,
org.w3c.dom.Node scope,
Location location,
java.lang.String message,
java.lang.Object data)
Report an error.
|
getFolderVersion, getResourceFolderType
containsCommentSuppress, getClient, getConfiguration, getContents, getDriver, getMainProject, getPhase, getProject, getProperty, getScope, getSdkInfo, isEnabled, isSuppressedWithComment, log, report, requestRepeat, setProperty
public XmlContext(@NonNull LintDriver driver, @NonNull Project project, @Nullable Project main, @NonNull java.io.File file, @Nullable com.android.resources.ResourceFolderType folderType, @NonNull XmlParser parser)
XmlContext
driver
- the driver running through the checksproject
- the project containing the file being checkedmain
- 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 being checkedfolderType
- the ResourceFolderType
of this file, if any@NonNull public Location getLocation(@NonNull org.w3c.dom.Node node)
node
- the node to look up the location for@NonNull public Location getNameLocation(@NonNull org.w3c.dom.Node node)
node
- the node to look up the location for@NonNull public Location getValueLocation(@NonNull org.w3c.dom.Attr node)
node
- the node to look up the location for@NonNull public Location getLocation(@NonNull org.w3c.dom.Node textNode, int begin, int end)
textNode
- the text nodebegin
- the start offset within the text node (inclusive)end
- the end offset within the text node (exclusive)@NonNull public XmlParser getParser()
public void report(@NonNull Issue issue, @Nullable org.w3c.dom.Node scope, @NonNull Location location, @NonNull java.lang.String message)
issue
- the issue to reportscope
- the DOM node scope the error applies to. The lint infrastructure
will check whether there are suppress directives 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 warningpublic void report(@NonNull Issue issue, @Nullable org.w3c.dom.Node scope, @NonNull Location location, @NonNull java.lang.String message, @Nullable java.lang.Object data)
report(Issue, org.w3c.dom.Node, Location, String)
but with
a now-unused data parameter at the end.public void report(@NonNull Issue issue, @NonNull Location location, @NonNull java.lang.String message)
Context
LintClient.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, java.lang.Object)
@Nullable protected java.lang.String getSuppressCommentPrefix()
Context
getSuppressCommentPrefix
in class Context
public boolean isSuppressedWithComment(@NonNull org.w3c.dom.Node node, @NonNull Issue issue)
@NonNull public Location.Handle createLocationHandle(@NonNull org.w3c.dom.Node node)