package com.intellij.javascript.flex.css;
import com.intellij.javascript.flex.FlexApplicationComponent;
import com.intellij.lang.javascript.ActionScriptFileType;
import com.intellij.lang.javascript.JavaScriptSupportLoader;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.vfs.JarFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.indexing.DefaultFileTypeSpecificInputFilter;
import org.jetbrains.annotations.NotNull;
/**
* @author Eugene.Kudelevsky
*/
class FlexInputFilter extends DefaultFileTypeSpecificInputFilter {
private FlexInputFilter() {
super(ActionScriptFileType.INSTANCE, FlexApplicationComponent.SWF_FILE_TYPE, JavaScriptSupportLoader.getMxmlFileType());
}
private static class FlexInputFilterHolder {
private static final FlexInputFilter ourInstance = new FlexInputFilter();
}
public static FlexInputFilter getInstance() {
return FlexInputFilterHolder.ourInstance;
}
public boolean acceptInput(@NotNull final VirtualFile file) {
FileType type = file.getFileType();
if (type == ActionScriptFileType.INSTANCE ||
(type == FlexApplicationComponent.SWF_FILE_TYPE && file.getFileSystem() instanceof JarFileSystem)) {
return true;
}
return JavaScriptSupportLoader.isFlexMxmFile(file);
}
}