public class ResourceEvaluator
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
COLOR_INT_ANNOTATION |
static com.android.resources.ResourceType |
COLOR_INT_MARKER_TYPE
Marker ResourceType used to signify that an expression is of type
@ColorInt ,
which isn't actually a ResourceType but one we want to specifically compare with. |
static java.lang.String |
PX_ANNOTATION |
static com.android.resources.ResourceType |
PX_MARKER_TYPE
Marker ResourceType used to signify that an expression is of type
@Px ,
which isn't actually a ResourceType but one we want to specifically compare with. |
static java.lang.String |
RES_SUFFIX |
Constructor and Description |
---|
ResourceEvaluator(JavaEvaluator evaluator)
Creates a new resource evaluator
|
Modifier and Type | Method and Description |
---|---|
ResourceEvaluator |
allowDereference(boolean allow)
Whether we allow dereferencing resources when computing constants;
e.g.
|
static com.android.ide.common.resources.ResourceUrl |
getResource(JavaEvaluator evaluator,
com.intellij.psi.PsiElement element)
Evaluates the given node and returns the resource reference (type and name) it
points to, if any
|
com.android.ide.common.resources.ResourceUrl |
getResource(com.intellij.psi.PsiElement element)
Evaluates the given node and returns the resource reference (type and name) it
points to, if any
|
static com.android.ide.common.resources.ResourceUrl |
getResourceConstant(com.intellij.psi.PsiElement node)
Returns a resource URL based on the field reference in the code
|
static java.util.EnumSet<com.android.resources.ResourceType> |
getResourceTypes(JavaEvaluator evaluator,
com.intellij.psi.PsiElement element)
Evaluates the given node and returns the resource types implied by the given element,
if any.
|
java.util.EnumSet<com.android.resources.ResourceType> |
getResourceTypes(com.intellij.psi.PsiElement element)
Evaluates the given node and returns the resource types applicable to the
node, if any.
|
public static final com.android.resources.ResourceType COLOR_INT_MARKER_TYPE
@ColorInt
,
which isn't actually a ResourceType but one we want to specifically compare with.
We're using ResourceType.PUBLIC
because that one won't appear in the R
class (and ResourceType is an enum we can't just create new constants for.)public static final com.android.resources.ResourceType PX_MARKER_TYPE
@Px
,
which isn't actually a ResourceType but one we want to specifically compare with.
We're using ResourceType.DECLARE_STYLEABLE
because that one doesn't
have a corresponding *Res
constant (and ResourceType is an enum we can't
just create new constants for.)public static final java.lang.String COLOR_INT_ANNOTATION
public static final java.lang.String PX_ANNOTATION
public static final java.lang.String RES_SUFFIX
public ResourceEvaluator(@Nullable JavaEvaluator evaluator)
evaluator
- the evaluator to use to resolve annotations references, if anypublic ResourceEvaluator allowDereference(boolean allow)
x
when the code is
x = getString(R.string.name)
, if allowDereference
is
true we'll return R.string.name, otherwise we'll return null.@Nullable public static com.android.ide.common.resources.ResourceUrl getResource(@Nullable JavaEvaluator evaluator, @NonNull com.intellij.psi.PsiElement element)
evaluator
- the evaluator to use to look up annotationselement
- the node to compute the constant value for@Nullable public static java.util.EnumSet<com.android.resources.ResourceType> getResourceTypes(@Nullable JavaEvaluator evaluator, @NonNull com.intellij.psi.PsiElement element)
evaluator
- the evaluator to use to look up annotationselement
- the node to compute the constant value for@Nullable public com.android.ide.common.resources.ResourceUrl getResource(@Nullable com.intellij.psi.PsiElement element)
element
- the node to compute the constant value for@Nullable public java.util.EnumSet<com.android.resources.ResourceType> getResourceTypes(@Nullable com.intellij.psi.PsiElement element)
element
- the element to compute the types for@Nullable public static com.android.ide.common.resources.ResourceUrl getResourceConstant(@NonNull com.intellij.psi.PsiElement node)