package org.jetbrains.plugins.clojure.debugger.filters; import com.intellij.ui.classFilter.ClassFilter; import com.intellij.ui.classFilter.DebuggerClassFilterProvider; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NonNls; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author ilyas */ public class ClojureDebugClassesFilterProvider implements DebuggerClassFilterProvider { @NonNls private static final String[] PROHIBITED_CLASS_PATTERNS = {"clojure.*"}; private static ClassFilter[] FILTERS = ContainerUtil.map(PROHIBITED_CLASS_PATTERNS, new Function<String, ClassFilter>() { public ClassFilter fun(final String s) { return new ClassFilter(s); } }, new ClassFilter[0]); public List<ClassFilter> getFilters() { final ClojureDebuggerSettings settings = ClojureDebuggerSettings.getInstance(); final Boolean flag = settings.DEBUG_DISABLE_SPECIFIC_CLOJURE_METHODS; final ArrayList<ClassFilter> list = new ArrayList<ClassFilter>(); if (flag == null || flag.booleanValue()) { list.addAll(Arrays.asList(FILTERS)); return list; } return list; } }