package com.google.code.joto.eventrecorder.predicate; import org.apache.commons.collections.Predicate; import com.google.code.joto.eventrecorder.RecordEventSummary; import com.google.code.joto.eventrecorder.predicate.RecordEventSummaryPredicateUtils.AbstractRecordEventSummaryPredicate; /** * default Predicate for RecordEventSummary with (optional) sub-predicate for * each field */ public class DefaultEventTypeRecordEventSummaryPredicate extends AbstractRecordEventSummaryPredicate { /** internal for java.io.Serializable */ private static final long serialVersionUID = 1L; private Predicate/* <int> */eventIdPredicate; private Predicate/* <Date> */eventDatePredicate; private Predicate/* <String> */threadNamePredicate; private Predicate/* <String> */eventTypePredicate; private Predicate/* <String> */eventSubTypePredicate; private Predicate/* <String> */eventClassNamePredicate; private Predicate/* <String> */eventMethodNamePredicate; private Predicate/* <String> */eventMethodDetailPredicate; private Predicate/* <int> */correlatedEventIdPredicate; // ------------------------------------------------------------------------ public DefaultEventTypeRecordEventSummaryPredicate() { } public DefaultEventTypeRecordEventSummaryPredicate( Predicate eventIdPredicate, Predicate eventDatePredicate, Predicate threadNamePredicate, Predicate eventTypePredicate, Predicate eventSubTypePredicate, Predicate eventClassNamePredicate, Predicate eventMethodNamePredicate, Predicate eventMethodDetailPredicate, Predicate correlatedEventIdPredicate) { super(); this.eventIdPredicate = eventIdPredicate; this.eventDatePredicate = eventDatePredicate; this.threadNamePredicate = threadNamePredicate; this.eventTypePredicate = eventTypePredicate; this.eventSubTypePredicate = eventSubTypePredicate; this.eventClassNamePredicate = eventClassNamePredicate; this.eventMethodNamePredicate = eventMethodNamePredicate; this.eventMethodDetailPredicate = eventMethodDetailPredicate; this.correlatedEventIdPredicate = correlatedEventIdPredicate; } // ------------------------------------------------------------------------ @Override public boolean evaluate(Object obj) { if (obj == null || !(obj instanceof RecordEventSummary)) return false; else return evaluate((RecordEventSummary) obj); } @Override public boolean evaluate(RecordEventSummary evt) { if (eventIdPredicate != null && !eventIdPredicate .evaluate(Integer.valueOf(evt.getEventId()))) { return false; } if (eventDatePredicate != null && !eventDatePredicate.evaluate(evt.getEventDate())) { return false; } if (threadNamePredicate != null && !threadNamePredicate.evaluate(evt.getThreadName())) { return false; } if (eventTypePredicate != null && !eventTypePredicate.evaluate(evt.getEventType())) { return false; } if (eventSubTypePredicate != null && !eventSubTypePredicate.evaluate(evt.getEventSubType())) { return false; } if (eventClassNamePredicate != null && !eventClassNamePredicate.evaluate(evt.getEventClassName())) { return false; } if (eventMethodNamePredicate != null && !eventMethodNamePredicate.evaluate(evt.getEventMethodName())) { return false; } if (eventMethodDetailPredicate != null && !eventMethodDetailPredicate.evaluate(evt .getEventMethodDetail())) { return false; } if (correlatedEventIdPredicate != null && !correlatedEventIdPredicate.evaluate(evt .getCorrelatedEventId())) { return false; } return true; } public Predicate getEventIdPredicate() { return eventIdPredicate; } public void setEventIdPredicate(Predicate p) { this.eventIdPredicate = p; } public Predicate getEventDatePredicate() { return eventDatePredicate; } public void setEventDatePredicate(Predicate p) { this.eventDatePredicate = p; } public Predicate getThreadNamePredicate() { return threadNamePredicate; } public void setThreadNamePredicate(Predicate p) { this.threadNamePredicate = p; } public Predicate getEventTypePredicate() { return eventTypePredicate; } public void setEventTypePredicate(Predicate p) { this.eventTypePredicate = p; } public Predicate getEventSubTypePredicate() { return eventSubTypePredicate; } public void setEventSubTypePredicate(Predicate p) { this.eventSubTypePredicate = p; } public Predicate getEventClassNamePredicate() { return eventClassNamePredicate; } public void setEventClassNamePredicate(Predicate p) { this.eventClassNamePredicate = p; } public Predicate getEventMethodNamePredicate() { return eventMethodNamePredicate; } public void setEventMethodNamePredicate(Predicate p) { this.eventMethodNamePredicate = p; } public Predicate getEventMethodDetailPredicate() { return eventMethodDetailPredicate; } public void setEventMethodDetailPredicate(Predicate p) { this.eventMethodDetailPredicate = p; } public Predicate getCorrelatedEventIdPredicate() { return correlatedEventIdPredicate; } public void setCorrelatedEventIdPredicate(Predicate p) { this.correlatedEventIdPredicate = p; } }