aboutsummaryrefslogtreecommitdiffstats
path: root/layoutlib_api/src/com/android/resources/FolderTypeRelationship.java
diff options
context:
space:
mode:
Diffstat (limited to 'layoutlib_api/src/com/android/resources/FolderTypeRelationship.java')
-rw-r--r--layoutlib_api/src/com/android/resources/FolderTypeRelationship.java166
1 files changed, 0 insertions, 166 deletions
diff --git a/layoutlib_api/src/com/android/resources/FolderTypeRelationship.java b/layoutlib_api/src/com/android/resources/FolderTypeRelationship.java
deleted file mode 100644
index 61a6d85..0000000
--- a/layoutlib_api/src/com/android/resources/FolderTypeRelationship.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.resources;
-
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * This class gives access to the bidirectional relationship between {@link ResourceType} and
- * {@link ResourceFolderType}.
- */
-public final class FolderTypeRelationship {
-
- private final static Map<ResourceType, List<ResourceFolderType>> mTypeToFolderMap =
- new HashMap<ResourceType, List<ResourceFolderType>>();
-
- private final static Map<ResourceFolderType, List<ResourceType>> mFolderToTypeMap =
- new HashMap<ResourceFolderType, List<ResourceType>>();
-
- static {
- // generate the relationships in a temporary map
- add(ResourceType.ANIM, ResourceFolderType.ANIM);
- add(ResourceType.ANIMATOR, ResourceFolderType.ANIMATOR);
- add(ResourceType.ARRAY, ResourceFolderType.VALUES);
- add(ResourceType.ATTR, ResourceFolderType.VALUES);
- add(ResourceType.BOOL, ResourceFolderType.VALUES);
- add(ResourceType.COLOR, ResourceFolderType.VALUES);
- add(ResourceType.COLOR, ResourceFolderType.COLOR);
- add(ResourceType.DECLARE_STYLEABLE, ResourceFolderType.VALUES);
- add(ResourceType.DIMEN, ResourceFolderType.VALUES);
- add(ResourceType.DRAWABLE, ResourceFolderType.VALUES);
- add(ResourceType.DRAWABLE, ResourceFolderType.DRAWABLE);
- add(ResourceType.FRACTION, ResourceFolderType.VALUES);
- add(ResourceType.ID, ResourceFolderType.VALUES);
- add(ResourceType.INTEGER, ResourceFolderType.VALUES);
- add(ResourceType.INTERPOLATOR, ResourceFolderType.INTERPOLATOR);
- add(ResourceType.LAYOUT, ResourceFolderType.LAYOUT);
- add(ResourceType.ID, ResourceFolderType.LAYOUT);
- add(ResourceType.MENU, ResourceFolderType.MENU);
- add(ResourceType.ID, ResourceFolderType.MENU);
- add(ResourceType.MIPMAP, ResourceFolderType.MIPMAP);
- add(ResourceType.PLURALS, ResourceFolderType.VALUES);
- add(ResourceType.PUBLIC, ResourceFolderType.VALUES);
- add(ResourceType.RAW, ResourceFolderType.RAW);
- add(ResourceType.STRING, ResourceFolderType.VALUES);
- add(ResourceType.STYLE, ResourceFolderType.VALUES);
- add(ResourceType.STYLEABLE, ResourceFolderType.VALUES);
- add(ResourceType.XML, ResourceFolderType.XML);
-
- makeSafe();
- }
-
- /**
- * Returns a list of {@link ResourceType}s that can be generated from files inside a folder
- * of the specified type.
- * @param folderType The folder type.
- * @return a list of {@link ResourceType}, possibly empty but never null.
- */
- public static List<ResourceType> getRelatedResourceTypes(ResourceFolderType folderType) {
- List<ResourceType> list = mFolderToTypeMap.get(folderType);
- if (list != null) {
- return list;
- }
-
- return Collections.emptyList();
- }
-
- /**
- * Returns a list of {@link ResourceFolderType} that can contain files generating resources
- * of the specified type.
- * @param resType the type of resource.
- * @return a list of {@link ResourceFolderType}, possibly empty but never null.
- */
- public static List<ResourceFolderType> getRelatedFolders(ResourceType resType) {
- List<ResourceFolderType> list = mTypeToFolderMap.get(resType);
- if (list != null) {
- return list;
- }
-
- return Collections.emptyList();
- }
-
- /**
- * Returns true if the {@link ResourceType} and the {@link ResourceFolderType} values match.
- * @param resType the resource type.
- * @param folderType the folder type.
- * @return true if files inside the folder of the specified {@link ResourceFolderType}
- * could generate a resource of the specified {@link ResourceType}
- */
- public static boolean match(ResourceType resType, ResourceFolderType folderType) {
- List<ResourceFolderType> list = mTypeToFolderMap.get(resType);
-
- if (list != null) {
- return list.contains(folderType);
- }
-
- return false;
- }
-
- /**
- * Adds a {@link ResourceType} - {@link ResourceFolderType} relationship. this indicates that
- * a file in the folder can generate a resource of the specified type.
- * @param type The resourceType
- * @param folder The {@link ResourceFolderType}
- */
- private static void add(ResourceType type, ResourceFolderType folder) {
- // first we add the folder to the list associated with the type.
- List<ResourceFolderType> folderList = mTypeToFolderMap.get(type);
- if (folderList == null) {
- folderList = new ArrayList<ResourceFolderType>();
- mTypeToFolderMap.put(type, folderList);
- }
- if (folderList.indexOf(folder) == -1) {
- folderList.add(folder);
- }
-
- // now we add the type to the list associated with the folder.
- List<ResourceType> typeList = mFolderToTypeMap.get(folder);
- if (typeList == null) {
- typeList = new ArrayList<ResourceType>();
- mFolderToTypeMap.put(folder, typeList);
- }
- if (typeList.indexOf(type) == -1) {
- typeList.add(type);
- }
- }
-
- /**
- * Makes the maps safe by replacing the current list values with unmodifiable lists.
- */
- private static void makeSafe() {
- for (ResourceType type : ResourceType.values()) {
- List<ResourceFolderType> list = mTypeToFolderMap.get(type);
- if (list != null) {
- // replace with a unmodifiable list wrapper around the current list.
- mTypeToFolderMap.put(type, Collections.unmodifiableList(list));
- }
- }
-
- for (ResourceFolderType folder : ResourceFolderType.values()) {
- List<ResourceType> list = mFolderToTypeMap.get(folder);
- if (list != null) {
- // replace with a unmodifiable list wrapper around the current list.
- mFolderToTypeMap.put(folder, Collections.unmodifiableList(list));
- }
- }
- }
-}