xy.reflect.ui.info.type.factory.FilteredTypeFactory Maven / Gradle / Ivy
package xy.reflect.ui.info.type.factory;
import java.util.ArrayList;
import java.util.List;
import xy.reflect.ui.info.field.IFieldInfo;
import xy.reflect.ui.info.filter.IInfoFilter;
import xy.reflect.ui.info.method.IMethodInfo;
import xy.reflect.ui.info.type.ITypeInfo;
public class FilteredTypeFactory extends TypeInfoProxyFactory {
protected IInfoFilter infoFilter;
public FilteredTypeFactory(IInfoFilter infoFilter) {
this.infoFilter = infoFilter;
}
@Override
protected List getFields(ITypeInfo type) {
List result = new ArrayList();
for (IFieldInfo field : super.getFields(type)) {
if (infoFilter.excludeField(field)) {
continue;
}
result.add(field);
}
return result;
}
@Override
protected List getMethods(ITypeInfo type) {
List result = new ArrayList();
for (IMethodInfo method : super.getMethods(type)) {
if (infoFilter.excludeMethod(method)) {
continue;
}
result.add(method);
}
return result;
}
@Override
public String toString() {
return "FilteredTypeFactory [infoFilter=" + infoFilter + "]";
}
}