package org.hyperic.hq.notifications.filtering;
import org.hyperic.hq.measurement.server.session.Measurement;
import org.hyperic.hq.measurement.shared.MeasurementManager;
import org.hyperic.hq.notifications.model.MetricNotification;
public class MetricFilter<C extends FilteringCondition<Measurement>> extends Filter<MetricNotification,C> {
private MeasurementManager measurementManager;
@Override
protected Class<? extends MetricNotification> getHandledNotificationClass() {
return MetricNotification.class;
}
public MetricFilter(final MeasurementManager measurementManager,C cond) {
super(cond);
this.measurementManager=measurementManager;
}
protected MetricNotification filter(MetricNotification metricNotification) {
Integer mid = metricNotification.getMeasurementId();
Measurement msmt = this.measurementManager.getMeasurement(mid);
if (this.cond.check(msmt)) {
return metricNotification;
}
return null;
}
}