/** * Add a ServiceMonitorFilter to this MonitorFilter * * @param serviceMonitorFilter Service Specific Filter * @exception MonitorFilterException * @return ServiceMonitorFilter Modified Filter to the capabilities of the service */ public ServiceMonitorFilter addServiceMonitorFilter(ServiceMonitorFilter serviceMonitorFilter) throws MonitorFilterException { ModuleClassID moduleClassID = serviceMonitorFilter.getModuleClassID(); if (serviceMonitorFilters.get(moduleClassID) != null) throw new MonitorFilterException( "Attempt to add a second Monitor Filter for: " + moduleClassID); serviceMonitorFilters.put(moduleClassID, serviceMonitorFilter); return serviceMonitorFilter; }
/** {@inheritDoc} */ public void initializeFrom(Element element) throws DocumentSerializationException { for (Enumeration e = element.getChildren(); e.hasMoreElements(); ) { Element serviceElement = (TextElement) e.nextElement(); String tagName = (String) serviceElement.getKey(); if (tagName.equals("service")) { try { ModuleClassID moduleClassID = (ModuleClassID) IDFactory.fromURI( new URI( DocumentSerializableUtilities.getString( serviceElement, "moduleClassID", "ERROR"))); try { ServiceMonitorFilter serviceMonitorFilter = MonitorResources.createServiceMonitorFilter(moduleClassID); serviceMonitorFilter.init(moduleClassID); Element serviceMonitorFilterElement = DocumentSerializableUtilities.getChildElement(serviceElement, "serviceFilter"); serviceMonitorFilter.initializeFrom(serviceMonitorFilterElement); serviceMonitorFilters.put(moduleClassID, serviceMonitorFilter); } catch (Exception ex) { if (unknownModuleClassIDs == null) unknownModuleClassIDs = new LinkedList(); unknownModuleClassIDs.add(moduleClassID); } } catch (URISyntaxException jex) { throw new DocumentSerializationException("Can't get ModuleClassID", jex); } } } }
/** {@inheritDoc} */ public void serializeTo(Element element) throws DocumentSerializationException { DocumentSerializableUtilities.addString(element, "description", description); for (Iterator i = serviceMonitorFilters.values().iterator(); i.hasNext(); ) { ServiceMonitorFilter serviceMonitorFilter = (ServiceMonitorFilter) i.next(); Element serviceElement = DocumentSerializableUtilities.createChildElement(element, "service"); DocumentSerializableUtilities.addString( serviceElement, "moduleClassID", serviceMonitorFilter.getModuleClassID().toString()); DocumentSerializableUtilities.addDocumentSerializable( serviceElement, "serviceFilter", serviceMonitorFilter); } }
/** * Get Iterator of all ServiceMonitorFilters subfilters * * @return Iterator of all ServiceMonitorFilters subfilters */ public Iterator getServiceMonitorFilters() { return serviceMonitorFilters.values().iterator(); }
/** * get ModuleClassIDs of contained subfilters * * @return Iterator of ServiceMonitor ClassIDs */ public Iterator getModuleClassIDs() { return serviceMonitorFilters.keySet().iterator(); }
/** * Get the number of subfilters * * @return int */ public int getServiceMonitorFilterCount() { return serviceMonitorFilters.size(); }
/** * remove ServiceMonitorFilter * * @param moduleClassID ServiceMonitor's moduleClassID */ public void removeServiceMonitorFilter(ModuleClassID moduleClassID) { serviceMonitorFilters.remove(moduleClassID); }
/** * Get ServiceMonitorFilter subfilter * * @param moduleClassID ServiceMonitor's moduleClassID * @return ServiceMonitorFilter SubFilter or null if not found */ public ServiceMonitorFilter getServiceMonitorFilter(ModuleClassID moduleClassID) { return (ServiceMonitorFilter) serviceMonitorFilters.get(moduleClassID); }