package sushi.application.pages.monitoring.bpmn.monitoring.model; import sushi.application.pages.eventrepository.model.AbstractFilter; import sushi.monitoring.bpmn.ProcessInstanceMonitor; /** * This class filters {@link ProcessInstanceMonitor}s. * @author micha */ public class ProcessInstanceMonitoringFilter extends AbstractFilter { private static final long serialVersionUID = 1L; /** * Constructor for the class, which filters {@link ProcessInstanceMonitor}s. */ public ProcessInstanceMonitoringFilter(){ super(); } public ProcessInstanceMonitoringFilter(String processInstanceMonitorFilterCriteria, String processInstanceMonitorFilterCondition, String filterValue){ super(processInstanceMonitorFilterCriteria, processInstanceMonitorFilterCondition, filterValue); } public boolean match(ProcessInstanceMonitor processInstanceMonitor) { if(filterCriteria == null || filterCondition == null || filterValue == null){ return true; } if(filterCriteria.equals("ID")){ try{ if(filterCondition.equals("<")){ if(processInstanceMonitor.getID() < Integer.parseInt(filterValue)) return true; } else if(filterCondition.equals(">")){ if(processInstanceMonitor.getID() < Integer.parseInt(filterValue)) return true; } else { if(processInstanceMonitor.getID() == Integer.parseInt(filterValue)) return true; } } catch(NumberFormatException e){ return false; } } else { return false; } return false; } }