update copyright
[fedora-idea.git] / java / java-impl / src / com / intellij / psi / scope / ElementClassFilter.java
blobb38037c2a7f5ef2584f31f840329a11545cd631a
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * @author max
20 package com.intellij.psi.scope;
22 import com.intellij.psi.*;
23 import com.intellij.psi.filters.ElementFilter;
25 public class ElementClassFilter implements ElementFilter {
26 public static final ElementClassFilter PACKAGE_FILTER = new ElementClassFilter(ElementClassHint.DeclaractionKind.PACKAGE);
27 public static final ElementClassFilter VARIABLE = new ElementClassFilter(ElementClassHint.DeclaractionKind.VARIABLE);
28 public static final ElementClassFilter METHOD = new ElementClassFilter(ElementClassHint.DeclaractionKind.METHOD);
29 public static final ElementClassFilter CLASS = new ElementClassFilter(ElementClassHint.DeclaractionKind.CLASS);
30 public static final ElementClassFilter FIELD = new ElementClassFilter(ElementClassHint.DeclaractionKind.FIELD);
31 public static final ElementClassFilter ENUM_CONST = new ElementClassFilter(ElementClassHint.DeclaractionKind.ENUM_CONST);
33 private final ElementClassHint.DeclaractionKind myKind;
35 private ElementClassFilter(ElementClassHint.DeclaractionKind kind) {
36 myKind = kind;
39 public boolean isAcceptable(Object element, PsiElement context) {
40 switch (myKind) {
41 case CLASS:
42 return element instanceof PsiClass;
44 case ENUM_CONST:
45 return element instanceof PsiEnumConstant;
47 case FIELD:
48 return element instanceof PsiField;
50 case METHOD:
51 return element instanceof PsiMethod;
53 case PACKAGE:
54 return element instanceof PsiPackage;
56 case VARIABLE:
57 return element instanceof PsiVariable;
60 return false;
63 public boolean isClassAcceptable(Class hintClass) {
64 return true;