blob: a6559f5d8978cb9800befb8eba757680c402e4f1 [file] [log] [blame]
package org.eclipse.osbp.ecview.core.common.util;
import java.util.List;
import org.eclipse.osbp.ecview.core.extension.model.extension.YFilteringComponent;
import org.eclipse.osbp.ecview.core.extension.model.extension.YFilteringType;
import org.eclipse.osbp.runtime.common.annotations.Filter;
import org.eclipse.osbp.runtime.common.util.BeanUtils;
public class ECViewUtil {
/**
* Fills the given {@link YFilteringComponent} with definitions required to
* show a filtering UI.
*
* @param type
* @param depth
* @param yFilterComponent
*/
public static void fill(Class<?> type, int depth, YFilteringComponent yFilterComponent) {
yFilterComponent.setType(type);
yFilterComponent.setTypeQualifiedName(type.getCanonicalName());
List<String> properties = BeanUtils.getAllFilteringProperties(type, depth);
for (String property : properties) {
if (BeanUtils.isAnnotationPresent(type, property, Filter.class)) {
yFilterComponent.addFilterDescriptor(YFilteringType.COMPARE, property);
} else {
yFilterComponent.addFilterDescriptor(YFilteringType.RANGE, property);
}
yFilterComponent.addTableDescriptor(property);
}
}
}