com.android.ide.common.resources
Class FrameworkResources

java.lang.Object
  extended by com.android.ide.common.resources.ResourceRepository
      extended by com.android.ide.common.resources.FrameworkResources

public class FrameworkResources
extends ResourceRepository

Framework resources repository. This behaves the same as ResourceRepository except that it differentiates between resources that are public and non public. getResourceItemsOfType(ResourceType) and hasResourcesOfType(ResourceType) only return public resources. This is typically used to display resource lists in the UI. ResourceRepository.getConfiguredResources(com.android.ide.common.resources.configuration.FolderConfiguration) returns all resources, even the non public ones so that this can be used for rendering.


Field Summary
protected  java.util.Map<com.android.resources.ResourceType,java.util.List<ResourceItem>> mPublicResourceMap
          Map of ResourceType to list of items.
 
Fields inherited from class com.android.ide.common.resources.ResourceRepository
mFolderMap, mResourceMap
 
Constructor Summary
FrameworkResources(com.android.io.IAbstractFolder resFolder)
           
 
Method Summary
protected  ResourceItem createResourceItem(java.lang.String name)
          Creates a resource item with the given name.
 java.util.List<ResourceItem> getResourceItemsOfType(com.android.resources.ResourceType type)
          Returns a Collection (always non null, but can be empty) of public ResourceItem matching a given ResourceType.
 boolean hasResourcesOfType(com.android.resources.ResourceType type)
          Returns whether the repository has public resources of a given ResourceType.
 void loadPublicResources(com.android.utils.ILogger logger)
          Reads the public.xml file in data/res/values/ for a given resource folder and builds up a map of public resources.
 
Methods inherited from class com.android.ide.common.resources.ResourceRepository
clear, doGetConfiguredResources, ensureInitialized, findResourceFile, getAvailableResourceTypes, getConfiguredResources, getFolders, getLanguages, getMatchingFile, getMatchingFile, getRegions, getResFolder, getResourceFolder, getResourceItem, getSourceFiles, hasResourceItem, hasResourceItem, isFrameworkRepository, loadResources, postUpdateCleanUp, processFolder, removeFile, removeFile, removeFolder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mPublicResourceMap

protected final java.util.Map<com.android.resources.ResourceType,java.util.List<ResourceItem>> mPublicResourceMap
Map of ResourceType to list of items. It is guaranteed to contain a list for all possible values of ResourceType.

Constructor Detail

FrameworkResources

public FrameworkResources(@NonNull
                          com.android.io.IAbstractFolder resFolder)
Method Detail

getResourceItemsOfType

@NonNull
public java.util.List<ResourceItem> getResourceItemsOfType(@NonNull
                                                                   com.android.resources.ResourceType type)
Returns a Collection (always non null, but can be empty) of public ResourceItem matching a given ResourceType.

Overrides:
getResourceItemsOfType in class ResourceRepository
Parameters:
type - the type of the resources to return
Returns:
a collection of items, possible empty.

hasResourcesOfType

public boolean hasResourcesOfType(@NonNull
                                  com.android.resources.ResourceType type)
Returns whether the repository has public resources of a given ResourceType.

Overrides:
hasResourcesOfType in class ResourceRepository
Parameters:
type - the type of resource to check.
Returns:
true if the repository contains resources of the given type, false otherwise.

createResourceItem

@NonNull
protected ResourceItem createResourceItem(@NonNull
                                                  java.lang.String name)
Description copied from class: ResourceRepository
Creates a resource item with the given name.

Specified by:
createResourceItem in class ResourceRepository
Parameters:
name - the name of the resource
Returns:
a new ResourceItem (or child class) instance.

loadPublicResources

public void loadPublicResources(@Nullable
                                com.android.utils.ILogger logger)
Reads the public.xml file in data/res/values/ for a given resource folder and builds up a map of public resources. This map is a subset of the full resource map that only contains framework resources that are public.

Parameters:
logger - a logger to report issues to