replace string literals for resource types by enum constants

This commit is contained in:
Eugene Kudelevsky
2012-07-17 20:19:24 +04:00
parent f716402b23
commit bb2d8ff8fd
22 changed files with 66 additions and 50 deletions
@@ -16,6 +16,7 @@
package org.jetbrains.android;
import com.android.resources.ResourceType;
import com.intellij.lang.annotation.Annotation;
import com.intellij.lang.annotation.AnnotationHolder;
import com.intellij.lang.annotation.Annotator;
@@ -81,10 +82,10 @@ public class AndroidColorAnnotator implements Annotator {
myColors.put("magenta", Integer.valueOf(MAGENTA));
}
public void annotate(PsiElement element, AnnotationHolder holder) {
public void annotate(@NotNull PsiElement element, @NotNull AnnotationHolder holder) {
if (element instanceof XmlTag) {
XmlTag tag = (XmlTag)element;
if (("color".equals(tag.getName()) || "drawable".equals(tag.getName()))) {
if ((ResourceType.COLOR.getName().equals(tag.getName()) || ResourceType.DRAWABLE.getName().equals(tag.getName()))) {
DomElement domElement = DomManager.getDomManager(element.getProject()).getDomElement(tag);
if (domElement instanceof ResourceElement) {
Annotation annotation = holder.createInfoAnnotation(element, null);
@@ -64,12 +64,12 @@ public class AndroidDomUtil {
private static final FragmentClassConverter FRAGMENT_CLASS_CONVERTER = new FragmentClassConverter();
static {
addSpecialResourceType("string", "label", "description", "title");
addSpecialResourceType("drawable", "icon");
addSpecialResourceType("style", "theme");
addSpecialResourceType("anim", "animation");
addSpecialResourceType("id", "id", "layout_toRightOf", "layout_toLeftOf", "layout_above", "layout_below", "layout_alignBaseLine",
"layout_alignLeft", "layout_alignTop", "layout_alignRight", "layout_alignBottom");
addSpecialResourceType(ResourceType.STRING.getName(), "label", "description", "title");
addSpecialResourceType(ResourceType.DRAWABLE.getName(), "icon");
addSpecialResourceType(ResourceType.STYLE.getName(), "theme");
addSpecialResourceType(ResourceType.ANIM.getName(), "animation");
addSpecialResourceType(ResourceType.ID.getName(), "id", "layout_toRightOf", "layout_toLeftOf", "layout_above", "layout_below",
"layout_alignBaseLine", "layout_alignLeft", "layout_alignTop", "layout_alignRight", "layout_alignBottom");
}
private AndroidDomUtil() {
@@ -79,15 +79,15 @@ public class AndroidDomUtil {
public static String getResourceType(@NotNull AttributeFormat format) {
switch (format) {
case Color:
return "color";
return ResourceType.COLOR.getName();
case Dimension:
return "dimen";
return ResourceType.DIMEN.getName();
case String:
return "string";
return ResourceType.STRING.getName();
case Integer:
return "integer";
return ResourceType.INTEGER.getName();
case Boolean:
return "bool";
return ResourceType.BOOL.getName();
default:
return null;
}
@@ -126,7 +126,9 @@ public class AndroidDomUtil {
resourceTypes.add(specialResourceType);
}
if (containsReference) {
if (resourceTypes.contains("color")) resourceTypes.add("drawable");
if (resourceTypes.contains(ResourceType.COLOR.getName())) {
resourceTypes.add(ResourceType.DRAWABLE.getName());
}
if (resourceTypes.size() == 0) {
resourceTypes.addAll(AndroidResourceUtil.getNames(AndroidResourceUtil.REFERRABLE_RESOURCE_TYPES));
}
@@ -16,6 +16,7 @@
package org.jetbrains.android.dom.animation;
import com.android.resources.ResourceType;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.util.Computable;
import com.intellij.psi.xml.XmlFile;
@@ -31,7 +32,7 @@ import org.jetbrains.annotations.NotNull;
*/
public class AnimationDomFileDescription extends AndroidResourceDomFileDescription<AnimationElement> {
public AnimationDomFileDescription() {
super(AnimationElement.class, "set", "anim");
super(AnimationElement.class, "set", ResourceType.ANIM.getName());
}
@Override
@@ -15,6 +15,7 @@
*/
package org.jetbrains.android.dom.color;
import com.android.resources.ResourceType;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.util.Computable;
import com.intellij.psi.xml.XmlFile;
@@ -25,7 +26,7 @@ import org.jetbrains.android.dom.AndroidResourceDomFileDescription;
*/
public class ColorDomFileDescription extends AndroidResourceDomFileDescription<ColorSelector> {
public ColorDomFileDescription() {
super(ColorSelector.class, "selector", "color");
super(ColorSelector.class, "selector", ResourceType.COLOR.getName());
}
@Override
@@ -15,11 +15,13 @@
*/
package org.jetbrains.android.dom.converters;
import com.android.resources.ResourceType;
/**
* @author Eugene.Kudelevsky
*/
public class ParentStyleConverter extends ResourceReferenceConverter {
public ParentStyleConverter() {
super("style", false, false);
super(ResourceType.STYLE.getName(), false, false);
}
}
@@ -108,7 +108,7 @@ public class ResourceReferenceConverter extends ResolvingConverter<ResourceValue
final Set<String> recommendedTypes = getResourceTypes(context);
// hack to check if it is a real id attribute
if (recommendedTypes.contains("id") && recommendedTypes.size() == 1) {
if (recommendedTypes.contains(ResourceType.ID.getName()) && recommendedTypes.size() == 1) {
result.add(ResourceValue.reference(AndroidResourceUtil.NEW_ID_PREFIX));
}
@@ -15,6 +15,7 @@
*/
package org.jetbrains.android.dom.drawable;
import com.android.resources.ResourceType;
import com.intellij.psi.xml.XmlFile;
import com.intellij.util.containers.HashMap;
import org.jetbrains.android.dom.AndroidResourceDomFileDescription;
@@ -58,7 +59,7 @@ public class AndroidDrawableDomUtil {
}
public static boolean isDrawableResourceFile(@NotNull XmlFile file) {
return AndroidResourceDomFileDescription.doIsMyFile(file, new String[]{"drawable"});
return AndroidResourceDomFileDescription.doIsMyFile(file, new String[]{ResourceType.DRAWABLE.getName()});
}
public static List<String> getPossibleRoots() {
@@ -1,5 +1,6 @@
package org.jetbrains.android.dom.drawable;
import com.android.resources.ResourceType;
import com.intellij.openapi.module.Module;
import com.intellij.psi.xml.XmlFile;
import com.intellij.psi.xml.XmlTag;
@@ -15,7 +16,7 @@ public class AnimationListDomFileDescription extends AndroidResourceDomFileDescr
@NonNls static final String ANIMATION_LIST_TAG = "animation-list";
public AnimationListDomFileDescription() {
super(AnimationList.class, ANIMATION_LIST_TAG, "drawable");
super(AnimationList.class, ANIMATION_LIST_TAG, ResourceType.DRAWABLE.getName());
}
@Override
@@ -15,6 +15,7 @@
*/
package org.jetbrains.android.dom.drawable;
import com.android.resources.ResourceType;
import com.intellij.openapi.module.Module;
import com.intellij.psi.xml.XmlFile;
import com.intellij.psi.xml.XmlTag;
@@ -30,7 +31,7 @@ public class BitmapOrNinePatchDomFileDescription extends AndroidResourceDomFileD
static final String[] ROOT_TAG_NAMES = new String[] {"bitmap", "nine-patch"};
public BitmapOrNinePatchDomFileDescription() {
super(BitmapOrNinePatchElement.class, ROOT_TAG_NAMES[0], "drawable");
super(BitmapOrNinePatchElement.class, ROOT_TAG_NAMES[0], ResourceType.DRAWABLE.getName());
}
@Override
@@ -15,6 +15,7 @@
*/
package org.jetbrains.android.dom.drawable;
import com.android.resources.ResourceType;
import com.intellij.openapi.module.Module;
import com.intellij.psi.xml.XmlFile;
import com.intellij.psi.xml.XmlTag;
@@ -23,9 +24,6 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Arrays;
import java.util.List;
/**
* @author Eugene.Kudelevsky
*/
@@ -33,7 +31,7 @@ public class DrawableStateListDomFileDescription extends AndroidResourceDomFileD
@NonNls public static final String SELECTOR_TAG_NAME = "selector";
public DrawableStateListDomFileDescription() {
super(DrawableSelector.class, SELECTOR_TAG_NAME, "drawable");
super(DrawableSelector.class, SELECTOR_TAG_NAME, ResourceType.DRAWABLE.getName());
}
@Override
@@ -15,6 +15,7 @@
*/
package org.jetbrains.android.dom.drawable;
import com.android.resources.ResourceType;
import com.intellij.openapi.module.Module;
import com.intellij.psi.xml.XmlFile;
import com.intellij.psi.xml.XmlTag;
@@ -32,7 +33,7 @@ public class InsetOrClipOrScaleDomFileDescription extends AndroidResourceDomFile
@NonNls private static final String[] ROOT_TAGS = new String[] {"inset", "clip", "scale", "animated-rotate", "rotate"};
public InsetOrClipOrScaleDomFileDescription() {
super(InsetOrClipOrScale.class, ROOT_TAGS[0], "drawable");
super(InsetOrClipOrScale.class, ROOT_TAGS[0], ResourceType.DRAWABLE.getName());
}
@Override
@@ -15,6 +15,7 @@
*/
package org.jetbrains.android.dom.drawable;
import com.android.resources.ResourceType;
import com.intellij.openapi.module.Module;
import com.intellij.psi.xml.XmlFile;
import com.intellij.psi.xml.XmlTag;
@@ -31,7 +32,7 @@ public class LayerListDomFileDescription extends AndroidResourceDomFileDescripti
@NonNls static final String[] POSSIBLE_ROOT_TAGS = {"layer-list", "transition"};
public LayerListDomFileDescription() {
super(LayerList.class, POSSIBLE_ROOT_TAGS[0], "drawable");
super(LayerList.class, POSSIBLE_ROOT_TAGS[0], ResourceType.DRAWABLE.getName());
}
@Override
@@ -15,6 +15,7 @@
*/
package org.jetbrains.android.dom.drawable;
import com.android.resources.ResourceType;
import com.intellij.openapi.module.Module;
import com.intellij.psi.xml.XmlFile;
import com.intellij.psi.xml.XmlTag;
@@ -30,7 +31,7 @@ public class LevelListDomFileDescription extends AndroidResourceDomFileDescripti
@NonNls static final String LEVEL_LIST_TAG = "level-list";
public LevelListDomFileDescription() {
super(LevelList.class, LEVEL_LIST_TAG, "drawable");
super(LevelList.class, LEVEL_LIST_TAG, ResourceType.DRAWABLE.getName());
}
@Override
@@ -15,6 +15,7 @@
*/
package org.jetbrains.android.dom.drawable;
import com.android.resources.ResourceType;
import com.intellij.openapi.module.Module;
import com.intellij.psi.xml.XmlFile;
import com.intellij.psi.xml.XmlTag;
@@ -30,7 +31,7 @@ public class ShapeDomFileDescription extends AndroidResourceDomFileDescription<S
@NonNls static final String SHAPE_ROOT_TAG = "shape";
public ShapeDomFileDescription() {
super(Shape.class, SHAPE_ROOT_TAG, "drawable");
super(Shape.class, SHAPE_ROOT_TAG, ResourceType.DRAWABLE.getName());
}
@Override
@@ -15,6 +15,7 @@
*/
package org.jetbrains.android.dom.layout;
import com.android.resources.ResourceType;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.util.Computable;
import com.intellij.psi.xml.XmlFile;
@@ -26,7 +27,7 @@ import org.jetbrains.annotations.NotNull;
*/
public class LayoutDomFileDescription extends AndroidResourceDomFileDescription<LayoutViewElement> {
public LayoutDomFileDescription() {
super(LayoutViewElement.class, "view", "layout");
super(LayoutViewElement.class, "view", ResourceType.LAYOUT.getName());
}
public boolean acceptsOtherRootTagNames() {
@@ -16,6 +16,7 @@
package org.jetbrains.android.dom.menu;
import com.android.resources.ResourceType;
import org.jetbrains.android.dom.AndroidResourceDomFileDescription;
/**
@@ -27,6 +28,6 @@ import org.jetbrains.android.dom.AndroidResourceDomFileDescription;
*/
public class MenuDomFileDescription extends AndroidResourceDomFileDescription<Menu> {
public MenuDomFileDescription() {
super(Menu.class, "menu", "menu");
super(Menu.class, "menu", ResourceType.MENU.getName());
}
}
@@ -16,6 +16,7 @@
package org.jetbrains.android.dom.xml;
import com.android.resources.ResourceType;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.util.Computable;
import com.intellij.psi.xml.XmlFile;
@@ -31,7 +32,7 @@ import org.jetbrains.annotations.NotNull;
*/
public class XmlResourceDomFileDescription extends AndroidResourceDomFileDescription<XmlResourceElement> {
public XmlResourceDomFileDescription() {
super(XmlResourceElement.class, "PreferenceScreen", "xml");
super(XmlResourceElement.class, "PreferenceScreen", ResourceType.XML.getName());
}
@Override
@@ -419,7 +419,7 @@ public class AndroidModuleBuilder extends JavaModuleBuilder {
ResourceElement appNameResElement = null;
final String appNameResource = "app_name";
for (ResourceElement resElement : manager.getValueResources("string")) {
for (ResourceElement resElement : manager.getValueResources(ResourceType.STRING.getName())) {
if (appNameResource.equals(resElement.getName().getValue())) {
appNameResElement = resElement;
}
@@ -440,7 +440,7 @@ public class AndroidModuleBuilder extends JavaModuleBuilder {
final Manifest manifest = facet.getManifest();
if (manifest != null) {
manifest.getApplication().getLabel().setValue(ResourceValue.referenceTo('@', null, "string", appNameResource));
manifest.getApplication().getLabel().setValue(ResourceValue.referenceTo('@', null, ResourceType.STRING.getName(), appNameResource));
}
}
@@ -285,7 +285,7 @@ public class LocalResourceManager extends ResourceManager {
@NotNull
public List<PsiElement> findResourcesByFieldName(@NotNull String resClassName, @NotNull String fieldName) {
List<PsiElement> targets = new ArrayList<PsiElement>();
if (resClassName.equals("id")) {
if (resClassName.equals(ResourceType.ID.getName())) {
targets.addAll(findIdDeclarations(fieldName));
}
for (PsiFile file : findResourceFiles(resClassName, fieldName, false)) {
@@ -294,12 +294,12 @@ public class LocalResourceManager extends ResourceManager {
for (ResourceElement element : findValueResources(resClassName, fieldName, false)) {
targets.add(element.getName().getXmlAttributeValue());
}
if (resClassName.equals("attr")) {
if (resClassName.equals(ResourceType.ATTR.getName())) {
for (Attr attr : findAttrs(fieldName)) {
targets.add(attr.getName().getXmlAttributeValue());
}
}
else if (resClassName.equals("styleable")) {
else if (resClassName.equals(ResourceType.STYLEABLE.getName())) {
for (DeclareStyleable styleable : findStyleables(fieldName)) {
targets.add(styleable.getName().getXmlAttributeValue());
}
@@ -281,7 +281,7 @@ public abstract class ResourceManager {
final Set<String> result = new HashSet<String>();
result.addAll(getValueResourceNames(type));
result.addAll(getFileResourcesNames(type));
if (type.equals("id")) {
if (type.equals(ResourceType.ID.getName())) {
result.addAll(getIds());
}
return result;
@@ -1,5 +1,6 @@
package org.jetbrains.android.sdk;
import com.android.resources.ResourceType;
import com.android.sdklib.IAndroidTarget;
import com.intellij.lang.injection.InjectedLanguageManager;
import com.intellij.openapi.application.ApplicationManager;
@@ -108,7 +109,7 @@ public class AndroidTargetData {
public void visitXmlTag(XmlTag tag) {
super.visitXmlTag(tag);
if ("style".equals(tag.getName())) {
if (ResourceType.STYLE.getName().equals(tag.getName())) {
final String styleName = tag.getAttributeValue("name");
if (styleName != null && (styleName.equals("Theme") || styleName.startsWith("Theme."))) {
@@ -363,7 +363,7 @@ public class AndroidResourceUtil {
final AndroidFacet facet = AndroidFacet.getInstance(attribute);
if (facet != null) {
return findResourceFields(facet, "id", id, false);
return findResourceFields(facet, ResourceType.ID.getName(), id, false);
}
}
}
@@ -403,7 +403,7 @@ public class AndroidResourceUtil {
return resources.addBool();
case ID:
final Item item = resources.addItem();
item.getType().setValue("id");
item.getType().setValue(ResourceType.ID.getName());
return item;
case ATTR:
return resources.addAttr();
@@ -457,33 +457,33 @@ public class AndroidResourceUtil {
public static List<ResourceElement> getValueResourcesFromElement(@NotNull String resourceType, @NotNull Resources resources) {
final List<ResourceElement> result = new ArrayList<ResourceElement>();
if (resourceType.equals("string")) {
if (resourceType.equals(ResourceType.STRING.getName())) {
result.addAll(resources.getStrings());
}
else if (resourceType.equals(ResourceType.PLURALS.getName())) {
result.addAll(resources.getPluralss());
}
else if (resourceType.equals("drawable")) {
else if (resourceType.equals(ResourceType.DRAWABLE.getName())) {
result.addAll(resources.getDrawables());
}
else if (resourceType.equals("color")) {
else if (resourceType.equals(ResourceType.COLOR.getName())) {
result.addAll(resources.getColors());
}
else if (resourceType.equals("dimen")) {
else if (resourceType.equals(ResourceType.DIMEN.getName())) {
result.addAll(resources.getDimens());
}
else if (resourceType.equals("style")) {
else if (resourceType.equals(ResourceType.STYLE.getName())) {
result.addAll(resources.getStyles());
}
else if (resourceType.equals("array")) {
else if (resourceType.equals(ResourceType.ARRAY.getName())) {
result.addAll(resources.getStringArrays());
result.addAll(resources.getIntegerArrays());
result.addAll(resources.getArrays());
}
else if (resourceType.equals("integer")) {
else if (resourceType.equals(ResourceType.INTEGER.getName())) {
result.addAll(resources.getIntegers());
}
else if (resourceType.equals("bool")) {
else if (resourceType.equals(ResourceType.BOOL.getName())) {
result.addAll(resources.getBools());
}
for (Item item : resources.getItems()) {
@@ -794,7 +794,7 @@ public class AndroidResourceUtil {
if (valuesResourceFile) {
return AndroidFileTemplateProvider.VALUE_RESOURCE_FILE_TEMPLATE;
}
if ("layout".equals(resourceType)) {
if (ResourceType.LAYOUT.getName().equals(resourceType)) {
return AndroidUtils.TAG_LINEAR_LAYOUT.equals(rootTagName)
? AndroidFileTemplateProvider.LAYOUT_RESOURCE_VERTICAL_FILE_TEMPLATE
: AndroidFileTemplateProvider.LAYOUT_RESOURCE_FILE_TEMPLATE;