package org.jetbrains.android.resourceManagers; import com.android.resources.ResourceType; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.android.util.AndroidResourceUtil; import org.jetbrains.annotations.NotNull; /** * @author Eugene.Kudelevsky */ abstract class ValueResourceInfoBase implements ValueResourceInfo { protected final String myName; protected final ResourceType myType; protected final VirtualFile myFile; protected ValueResourceInfoBase(@NotNull String name, @NotNull ResourceType type, @NotNull VirtualFile file) { myName = name; myType = type; myFile = file; } @NotNull @Override public VirtualFile getContainingFile() { return myFile; } @NotNull @Override public String getName() { return myName; } @NotNull @Override public ResourceType getType() { return myType; } @Override public String toString() { return "ANDROID_RESOURCE: " + myType + ", " + myName + ", " + myFile.getPath() + "]"; } @Override public int compareTo(@NotNull ValueResourceInfo other) { VirtualFile file1 = myFile; VirtualFile file2 = other.getContainingFile(); int delta = AndroidResourceUtil.compareResourceFiles(file1, file2); if (delta != 0) { return delta; } // Ensure stable order between unrelated value resources that don't know about each other return getSortingRank() - ((ValueResourceInfoBase)other).getSortingRank(); } /** Relative ordering between Id resources and value resources */ protected abstract int getSortingRank(); }