/** {@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); } }
/** * 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; }