com.android.ide.common.resources
Class ResourceResolver

java.lang.Object
  extended by com.android.ide.common.rendering.api.RenderResources
      extended by com.android.ide.common.resources.ResourceResolver

public class ResourceResolver
extends com.android.ide.common.rendering.api.RenderResources


Nested Class Summary
 
Nested classes/interfaces inherited from class com.android.ide.common.rendering.api.RenderResources
com.android.ide.common.rendering.api.RenderResources.FrameworkResourceIdProvider
 
Field Summary
static java.lang.String ATTR_EXAMPLE
           
static int MAX_RESOURCE_INDIRECTION
          Number of indirections we'll follow for resource resolution before assuming there is a cyclic dependency error in the input
static java.lang.String THEME_NAME
           
static java.lang.String THEME_NAME_DOT
           
static java.lang.String XLIFF_G_TAG
           
static java.lang.String XLIFF_NAMESPACE_PREFIX
           
 
Fields inherited from class com.android.ide.common.rendering.api.RenderResources
REFERENCE_NULL
 
Method Summary
static ResourceResolver create(java.util.Map<com.android.resources.ResourceType,java.util.Map<java.lang.String,com.android.ide.common.rendering.api.ResourceValue>> projectResources, java.util.Map<com.android.resources.ResourceType,java.util.Map<java.lang.String,com.android.ide.common.rendering.api.ResourceValue>> frameworkResources, java.lang.String themeName, boolean isProjectTheme)
          Creates a new ResourceResolver object.
 ResourceResolver createRecorder(java.util.List<com.android.ide.common.rendering.api.ResourceValue> lookupChain)
          Creates a new ResourceResolver which records all resource resolution lookups into the given list.
 com.android.ide.common.rendering.api.ResourceValue findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style, java.lang.String attrName)
          Deprecated. 
 com.android.ide.common.rendering.api.ResourceValue findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style, java.lang.String itemName, boolean isFrameworkAttr)
           
 com.android.ide.common.rendering.api.ResourceValue findResValue(java.lang.String reference, boolean forceFrameworkOnly)
           
 com.android.ide.common.rendering.api.StyleResourceValue getCurrentTheme()
           
 com.android.ide.common.rendering.api.ResourceValue getFrameworkResource(com.android.resources.ResourceType resourceType, java.lang.String resourceName)
           
 java.util.Map<com.android.resources.ResourceType,java.util.Map<java.lang.String,com.android.ide.common.rendering.api.ResourceValue>> getFrameworkResources()
           
 com.android.ide.common.rendering.api.ResourceValue getProjectResource(com.android.resources.ResourceType resourceType, java.lang.String resourceName)
           
 java.util.Map<com.android.resources.ResourceType,java.util.Map<java.lang.String,com.android.ide.common.rendering.api.ResourceValue>> getProjectResources()
           
 com.android.ide.common.rendering.api.StyleResourceValue getTheme(java.lang.String name, boolean frameworkTheme)
           
 java.lang.String getThemeName()
           
 boolean isProjectTheme()
           
 boolean isTheme(com.android.ide.common.rendering.api.ResourceValue value, java.util.Map<com.android.ide.common.rendering.api.ResourceValue,java.lang.Boolean> cache)
          Returns true if the given ResourceValue represents a theme
 com.android.ide.common.rendering.api.ResourceValue resolveResValue(com.android.ide.common.rendering.api.ResourceValue resValue)
           
 com.android.ide.common.rendering.api.ResourceValue resolveValue(com.android.resources.ResourceType type, java.lang.String name, java.lang.String value, boolean isFrameworkValue)
           
 void setFrameworkResourceIdProvider(com.android.ide.common.rendering.api.RenderResources.FrameworkResourceIdProvider provider)
           
 void setLogger(com.android.ide.common.rendering.api.LayoutLog logger)
           
 boolean themeExtends(java.lang.String parentStyle, java.lang.String themeStyle)
          Returns true if the given themeStyle extends the theme given by parentStyle
 boolean themeIsParentOf(com.android.ide.common.rendering.api.StyleResourceValue parentTheme, com.android.ide.common.rendering.api.StyleResourceValue childTheme)
           
 
Methods inherited from class com.android.ide.common.rendering.api.RenderResources
findItemInTheme, findItemInTheme
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

THEME_NAME

public static final java.lang.String THEME_NAME
See Also:
Constant Field Values

THEME_NAME_DOT

public static final java.lang.String THEME_NAME_DOT
See Also:
Constant Field Values

XLIFF_NAMESPACE_PREFIX

public static final java.lang.String XLIFF_NAMESPACE_PREFIX
See Also:
Constant Field Values

XLIFF_G_TAG

public static final java.lang.String XLIFF_G_TAG
See Also:
Constant Field Values

ATTR_EXAMPLE

public static final java.lang.String ATTR_EXAMPLE
See Also:
Constant Field Values

MAX_RESOURCE_INDIRECTION

public static final int MAX_RESOURCE_INDIRECTION
Number of indirections we'll follow for resource resolution before assuming there is a cyclic dependency error in the input

See Also:
Constant Field Values
Method Detail

create

public static ResourceResolver create(java.util.Map<com.android.resources.ResourceType,java.util.Map<java.lang.String,com.android.ide.common.rendering.api.ResourceValue>> projectResources,
                                      java.util.Map<com.android.resources.ResourceType,java.util.Map<java.lang.String,com.android.ide.common.rendering.api.ResourceValue>> frameworkResources,
                                      java.lang.String themeName,
                                      boolean isProjectTheme)
Creates a new ResourceResolver object.

Parameters:
projectResources - the project resources.
frameworkResources - the framework resources.
themeName - the name of the current theme.
isProjectTheme - Is this a project theme?
Returns:
a new ResourceResolver

getThemeName

public java.lang.String getThemeName()

isProjectTheme

public boolean isProjectTheme()

getProjectResources

public java.util.Map<com.android.resources.ResourceType,java.util.Map<java.lang.String,com.android.ide.common.rendering.api.ResourceValue>> getProjectResources()

getFrameworkResources

public java.util.Map<com.android.resources.ResourceType,java.util.Map<java.lang.String,com.android.ide.common.rendering.api.ResourceValue>> getFrameworkResources()

setFrameworkResourceIdProvider

public void setFrameworkResourceIdProvider(com.android.ide.common.rendering.api.RenderResources.FrameworkResourceIdProvider provider)
Overrides:
setFrameworkResourceIdProvider in class com.android.ide.common.rendering.api.RenderResources

setLogger

public void setLogger(com.android.ide.common.rendering.api.LayoutLog logger)
Overrides:
setLogger in class com.android.ide.common.rendering.api.RenderResources

getCurrentTheme

public com.android.ide.common.rendering.api.StyleResourceValue getCurrentTheme()
Overrides:
getCurrentTheme in class com.android.ide.common.rendering.api.RenderResources

getTheme

public com.android.ide.common.rendering.api.StyleResourceValue getTheme(java.lang.String name,
                                                                        boolean frameworkTheme)
Overrides:
getTheme in class com.android.ide.common.rendering.api.RenderResources

themeIsParentOf

public boolean themeIsParentOf(com.android.ide.common.rendering.api.StyleResourceValue parentTheme,
                               com.android.ide.common.rendering.api.StyleResourceValue childTheme)
Overrides:
themeIsParentOf in class com.android.ide.common.rendering.api.RenderResources

getFrameworkResource

public com.android.ide.common.rendering.api.ResourceValue getFrameworkResource(com.android.resources.ResourceType resourceType,
                                                                               java.lang.String resourceName)
Overrides:
getFrameworkResource in class com.android.ide.common.rendering.api.RenderResources

getProjectResource

public com.android.ide.common.rendering.api.ResourceValue getProjectResource(com.android.resources.ResourceType resourceType,
                                                                             java.lang.String resourceName)
Overrides:
getProjectResource in class com.android.ide.common.rendering.api.RenderResources

findItemInStyle

@Deprecated
public com.android.ide.common.rendering.api.ResourceValue findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
                                                                                     java.lang.String attrName)
Deprecated. 

Overrides:
findItemInStyle in class com.android.ide.common.rendering.api.RenderResources

findItemInStyle

public com.android.ide.common.rendering.api.ResourceValue findItemInStyle(com.android.ide.common.rendering.api.StyleResourceValue style,
                                                                          java.lang.String itemName,
                                                                          boolean isFrameworkAttr)
Overrides:
findItemInStyle in class com.android.ide.common.rendering.api.RenderResources

findResValue

public com.android.ide.common.rendering.api.ResourceValue findResValue(java.lang.String reference,
                                                                       boolean forceFrameworkOnly)
Overrides:
findResValue in class com.android.ide.common.rendering.api.RenderResources

resolveValue

public com.android.ide.common.rendering.api.ResourceValue resolveValue(com.android.resources.ResourceType type,
                                                                       java.lang.String name,
                                                                       java.lang.String value,
                                                                       boolean isFrameworkValue)
Overrides:
resolveValue in class com.android.ide.common.rendering.api.RenderResources

resolveResValue

public com.android.ide.common.rendering.api.ResourceValue resolveResValue(com.android.ide.common.rendering.api.ResourceValue resValue)
Overrides:
resolveResValue in class com.android.ide.common.rendering.api.RenderResources

isTheme

public boolean isTheme(@NonNull
                       com.android.ide.common.rendering.api.ResourceValue value,
                       @Nullable
                       java.util.Map<com.android.ide.common.rendering.api.ResourceValue,java.lang.Boolean> cache)
Returns true if the given ResourceValue represents a theme


themeExtends

public boolean themeExtends(@NonNull
                            java.lang.String parentStyle,
                            @NonNull
                            java.lang.String themeStyle)
Returns true if the given themeStyle extends the theme given by parentStyle


createRecorder

public ResourceResolver createRecorder(java.util.List<com.android.ide.common.rendering.api.ResourceValue> lookupChain)
Creates a new ResourceResolver which records all resource resolution lookups into the given list. Note that it is the responsibility of the caller to clear/reset the list between subsequent lookup operations.

Parameters:
lookupChain - the list to write resource lookups into
Returns:
a new ResourceResolver