package org.opennms.netmgt.correlation.ncs; import java.util.List; import org.opennms.netmgt.model.ncs.NCSComponent; import org.opennms.netmgt.xml.event.Event; import org.opennms.netmgt.xml.event.Parm; import org.opennms.netmgt.xml.event.Value; public interface NCSCorrelationService { public static class AttrParmMap { String m_attributeName; int m_paramterIndex; public AttrParmMap(String attributeName, int parameterIndex) { m_attributeName = attributeName; m_paramterIndex = parameterIndex; } public boolean matches(NCSComponent component, Event e) { if (!component.getAttributes().containsKey(m_attributeName)) return false; List<Parm> parms = e.getParmCollection(); if (m_paramterIndex > parms.size()) return false; Parm parm = parms.get(m_paramterIndex - 1); Value val = parm.getValue(); if (val == null) return false; String attrVal = component.getAttributes().get(m_attributeName); String eventVal = val.getContent(); return attrVal == null ? eventVal == null : attrVal.equals(eventVal); } } List<NCSComponent> findComponentsThatDependOn(Long componentId); List<NCSComponent> findSubComponents(Long componentId); List<NCSComponent> findComponentsByNodeIdAndAttrParmMaps(Event e, AttrParmMap... parameterMap); List<NCSComponent> findComponentsByNodeIdAndEventParameters(Event e, String... parameterNames); }