package net.jeeeyul.eclipse.themes.ui.preference.internal; import java.lang.reflect.Field; import net.jeeeyul.eclipse.themes.ui.preference.annotations.TypeHint; /** * * @author Jeeeyul */ public class TypeFilter implements IPreferenceFilter { private Class<?> typeClass; /** * @param typeClass */ public TypeFilter(Class<?> typeClass) { super(); this.typeClass = typeClass; } @Override public boolean acceptCategory(Class<?> category) { return true; } @Override public boolean acceptKey(Field field) { TypeHint annotation = field.getAnnotation(TypeHint.class); if (annotation == null) { return false; } return annotation.value() == typeClass; } @Override public IPreferenceFilter chain(IPreferenceFilter other) { return new CompoundPreferenceFilter(this, other); } }