public class ResourceSet extends DataSet<ResourceMergerItem,ResourceFile>
DataSet for ResourceMergerItem and ResourceFile.
This is able to detect duplicates from the same source folders (same resource coming from the values folder in same or different files).
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
ATTR_AAPT_NAMESPACE |
static java.lang.String |
ATTR_FROM_DEPENDENCY |
static java.lang.String |
ATTR_GENERATED_SET |
| Constructor and Description |
|---|
ResourceSet(java.lang.String name,
com.android.ide.common.rendering.api.ResourceNamespace namespace,
java.lang.String libraryName,
boolean validateEnabled) |
| Modifier and Type | Method and Description |
|---|---|
protected ResourceFile |
createFileAndItems(java.io.File sourceFolder,
java.io.File file,
com.android.utils.ILogger logger) |
protected ResourceFile |
createFileAndItemsFromXml(java.io.File file,
org.w3c.dom.Node fileNode)
Creates a DataFile and associated DataItems from an XML node from a file created with
DataSet.appendToXml(Node, Document, MergeConsumer, boolean) |
protected DataSet<ResourceMergerItem,ResourceFile> |
createSet(java.lang.String name) |
boolean |
equals(java.lang.Object o) |
java.lang.String |
getLibraryName() |
com.android.ide.common.rendering.api.ResourceNamespace |
getNamespace() |
protected boolean |
handleChangedFile(java.io.File sourceFolder,
java.io.File changedFile,
com.android.utils.ILogger logger) |
protected ResourceFile |
handleNewFile(java.io.File sourceFolder,
java.io.File file,
com.android.utils.ILogger logger) |
protected boolean |
handleRemovedFile(java.io.File removedFile) |
int |
hashCode() |
boolean |
isFromDependency() |
protected boolean |
isValidSourceFile(java.io.File sourceFolder,
java.io.File file) |
protected void |
readSourceFolder(java.io.File sourceFolder,
com.android.utils.ILogger logger)
Reads the content of a data folders and loads the DataItem.
|
void |
setCheckDuplicates(boolean value)
Tells the resource set whether to check for duplicate resource items or not.
|
void |
setDontNormalizeQualifiers(boolean dontNormalizeQualifiers) |
void |
setFromDependency(boolean fromDependency) |
void |
setGeneratedSet(ResourceSet generatedSet) |
void |
setPreprocessor(ResourcePreprocessor preprocessor) |
void |
setResourcesWhitelist(com.google.common.collect.ImmutableSet<com.android.resources.ResourceFolderType> whitelist) |
void |
setShouldParseResourceIds(boolean shouldParse) |
void |
setTrackSourcePositions(boolean shouldTrack) |
addItem, addSource, addSources, checkFileForAndroidRes, checkItems, findMatchingSourceFile, getConfigName, getDataFile, getDataMap, getSourceFiles, getValidateEnabled, isEmpty, isIgnored, loadFile, loadFromFiles, processNewDataFile, setFolderFilter, setIgnoredPatterns, size, toString, updateWithpublic static final java.lang.String ATTR_GENERATED_SET
public static final java.lang.String ATTR_FROM_DEPENDENCY
public static final java.lang.String ATTR_AAPT_NAMESPACE
public ResourceSet(@NonNull
java.lang.String name,
@NonNull
com.android.ide.common.rendering.api.ResourceNamespace namespace,
java.lang.String libraryName,
boolean validateEnabled)
public java.lang.String getLibraryName()
public void setGeneratedSet(ResourceSet generatedSet)
public void setPreprocessor(@NonNull
ResourcePreprocessor preprocessor)
public void setShouldParseResourceIds(boolean shouldParse)
public void setDontNormalizeQualifiers(boolean dontNormalizeQualifiers)
public void setTrackSourcePositions(boolean shouldTrack)
public void setCheckDuplicates(boolean value)
Checking for duplicate items has to be turned off when loading resources of the Android framework to avoid bogus errors. See, for example, prebuilts/studio/layoutlib/data/res/values/attrs.xml.
@NonNull protected DataSet<ResourceMergerItem,ResourceFile> createSet(@NonNull java.lang.String name)
createSet in class DataSet<ResourceMergerItem,ResourceFile>protected ResourceFile createFileAndItems(java.io.File sourceFolder, java.io.File file, com.android.utils.ILogger logger) throws MergingException
createFileAndItems in class DataSet<ResourceMergerItem,ResourceFile>MergingExceptionprotected ResourceFile createFileAndItemsFromXml(@NonNull java.io.File file, @NonNull org.w3c.dom.Node fileNode) throws MergingException
DataSetDataSet.appendToXml(Node, Document, MergeConsumer, boolean)createFileAndItemsFromXml in class DataSet<ResourceMergerItem,ResourceFile>file - the file represented by the DataFilefileNode - the XML node.MergingExceptionpublic void setResourcesWhitelist(@NonNull
com.google.common.collect.ImmutableSet<com.android.resources.ResourceFolderType> whitelist)
protected void readSourceFolder(java.io.File sourceFolder,
com.android.utils.ILogger logger)
throws MergingException
DataSetDataSet.processNewDataFile(java.io.File, DataFile, boolean).readSourceFolder in class DataSet<ResourceMergerItem,ResourceFile>sourceFolder - the source folder to load the resources from.MergingException - if something goes wrongprotected boolean isValidSourceFile(@NonNull
java.io.File sourceFolder,
@NonNull
java.io.File file)
isValidSourceFile in class DataSet<ResourceMergerItem,ResourceFile>@Nullable protected ResourceFile handleNewFile(java.io.File sourceFolder, java.io.File file, com.android.utils.ILogger logger) throws MergingException
handleNewFile in class DataSet<ResourceMergerItem,ResourceFile>MergingExceptionprotected boolean handleRemovedFile(java.io.File removedFile)
handleRemovedFile in class DataSet<ResourceMergerItem,ResourceFile>protected boolean handleChangedFile(@NonNull
java.io.File sourceFolder,
@NonNull
java.io.File changedFile,
@NonNull
com.android.utils.ILogger logger)
throws MergingException
handleChangedFile in class DataSet<ResourceMergerItem,ResourceFile>MergingExceptionpublic boolean isFromDependency()
public void setFromDependency(boolean fromDependency)
@NonNull public com.android.ide.common.rendering.api.ResourceNamespace getNamespace()
public boolean equals(java.lang.Object o)
equals in class DataSet<ResourceMergerItem,ResourceFile>public int hashCode()
hashCode in class DataSet<ResourceMergerItem,ResourceFile>