eventconfwriter.java
来自「opennms得相关源码 请大家看看」· Java 代码 · 共 272 行
JAVA
272 行
//// This file is part of the OpenNMS(R) Application.//// OpenNMS(R) is Copyright (C) 2002-2003 The OpenNMS Group, Inc. All rights reserved.// OpenNMS(R) is a derivative work, containing both original code, included code and modified// code that was published under the GNU General Public License. Copyrights for modified // and included code are below.//// OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.//// Copyright (C) 1999-2001 Oculan Corp. All rights reserved.//// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.//// For more information contact:// OpenNMS Licensing <license@opennms.org>// http://www.opennms.org/// http://www.opennms.com///package org.opennms.web.eventconf.parsers;import java.util.Collection;import java.util.Iterator;import java.util.List;import org.opennms.web.eventconf.bobject.AutoAction;import org.opennms.web.eventconf.bobject.Correlation;import org.opennms.web.eventconf.bobject.Event;import org.opennms.web.eventconf.bobject.Forward;import org.opennms.web.eventconf.bobject.Global;import org.opennms.web.eventconf.bobject.MaskElement;import org.opennms.web.eventconf.bobject.OperatorAction;import org.opennms.web.eventconf.bobject.Snmp;import org.opennms.web.parsers.XMLWriteException;import org.opennms.web.parsers.XMLWriter;import org.w3c.dom.Element;/** * This class is used to save data to the eventconf.xml file. * * @author <A HREF="mailto:jason@opennms.org">Jason Johns </A> * @author <A HREF="http://www.opennms.org/">OpenNMS </A> * * @version 1.1.1.1 * */public class EventConfWriter extends XMLWriter { /** * Default constructor, intializes the member variables */ public EventConfWriter(String fileName) throws XMLWriteException { super(fileName); } /** * This method saves the list of events to the specified file * * @exception XMLWriteException, * if the save failed */ protected void saveDocument(Collection events) throws XMLWriteException { Element root = m_document.createElement("events"); m_document.appendChild(root); // if there are any users print them out if (events.size() > 0) { // write each event Iterator i = events.iterator(); while (i.hasNext()) { Object eventObject = i.next(); // expecting the first object in the collection to be the Global // information if (eventObject instanceof Global) { buildGlobalElement(root, (Global) eventObject); } // everything else should be the Event objects else if (eventObject instanceof Event) { Event curEvent = (Event) eventObject; Element curEventElement = addEmptyElement(root, "event"); // mask information if (curEvent.getMask().size() > 0) { Element maskElement = addEmptyElement(curEventElement, "mask"); List maskElements = curEvent.getMask(); for (int q = 0; q < maskElements.size(); q++) { MaskElement curElement = (MaskElement) maskElements.get(q); Element maskElementElement = addEmptyElement(maskElement, "maskelement"); addDataElement(maskElementElement, "mename", curElement.getElementName()); List values = curElement.getElementValues(); for (int j = 0; j < values.size(); j++) { addDataElement(maskElementElement, "mevalue", (String) values.get(j)); } } } addDataElement(curEventElement, "uei", curEvent.getUei()); // snmp tag if (curEvent.getSnmp() != null) { buildSnmpElement(curEventElement, curEvent.getSnmp()); } addCDataElement(curEventElement, "descr", curEvent.getDescription()); Element logMessageElement = addCDataElement(curEventElement, "logmsg", curEvent.getLogMessage()); logMessageElement.setAttribute("dest", curEvent.getLogMessageDestination()); addDataElement(curEventElement, "severity", curEvent.getSeverity()); // correlation tag if (curEvent.getCorrelation() != null) { buildCorrelationElement(curEventElement, curEvent.getCorrelation()); } // operator instruction if (curEvent.getOperInstruct() != null && !curEvent.getOperInstruct().trim().equals("")) { addDataElement(curEventElement, "operinstruct", curEvent.getOperInstruct()); } List autoActions = curEvent.getAutoActions(); for (int k = 0; k < autoActions.size(); k++) { AutoAction curAction = (AutoAction) autoActions.get(k); Element actionElement = addCDataElement(curEventElement, "autoaction", curAction.getAutoAction()); actionElement.setAttribute("state", curAction.getState()); } List operActions = curEvent.getOperatorActions(); for (int l = 0; l < operActions.size(); l++) { OperatorAction curAction = (OperatorAction) operActions.get(l); Element actionElement = addCDataElement(curEventElement, "operaction", curAction.getOperatorAction()); actionElement.setAttribute("state", curAction.getState()); actionElement.setAttribute("menutext", curAction.getMenuText()); } List logGroups = curEvent.getLogGroups(); for (int m = 0; m < logGroups.size(); m++) { addDataElement(curEventElement, "loggroup", (String) logGroups.get(m)); } List notifications = curEvent.getNotifications(); for (int n = 0; n < notifications.size(); n++) { addCDataElement(curEventElement, "notification", (String) notifications.get(n)); } if (curEvent.getTTicket() != null && !curEvent.getTTicket().trim().equals("")) { Element ticketElement = addCDataElement(curEventElement, "tticket", curEvent.getTTicket()); ticketElement.setAttribute("state", curEvent.getTTicketState()); } List forwards = curEvent.getForwards(); for (int p = 0; p < forwards.size(); p++) { Forward curForward = (Forward) forwards.get(p); Element forwardElement = addDataElement(curEventElement, "forward", curForward.getForward()); forwardElement.setAttribute("state", curForward.getState()); forwardElement.setAttribute("mechanism", curForward.getMechanism()); } if (curEvent.getMouseOverText() != null && !curEvent.getMouseOverText().trim().equals("")) { addDataElement(curEventElement, "mouseovertext", curEvent.getMouseOverText()); } } } } serializeToFile(); } /** */ private Element buildGlobalElement(Element parent, Global global) { Element globalElement = addEmptyElement(parent, "global"); Element securityElement = addEmptyElement(globalElement, "security"); List securities = global.getSecurities(); for (int i = 0; i < securities.size(); i++) { addDataElement(securityElement, "doNotOverride", (String) securities.get(i)); } return globalElement; } /** */ private Element buildSnmpElement(Element parent, Snmp snmp) { Element snmpElement = null; if (snmp != null) { snmpElement = addEmptyElement(parent, "snmp"); addDataElement(snmpElement, "id", snmp.getId()); if (snmp.getIdText() != null && !snmp.getIdText().trim().equals("")) { addDataElement(snmpElement, "idtext", snmp.getIdText()); } addDataElement(snmpElement, "version", snmp.getVersion()); if (snmp.getSpecific() != null && !snmp.getSpecific().trim().equals("")) { addDataElement(snmpElement, "specific", snmp.getSpecific()); } if (snmp.getGeneric() != null && !snmp.getGeneric().trim().equals("")) { addDataElement(snmpElement, "generic", snmp.getGeneric()); } if (snmp.getCommunity() != null && !snmp.getCommunity().trim().equals("")) { addDataElement(snmpElement, "community", snmp.getCommunity()); } } return snmpElement; } /** */ private Element buildCorrelationElement(Element parent, Correlation correlation) { Element correlationElement = null; if (correlation != null) { correlationElement = addEmptyElement(parent, "correlation"); correlationElement.setAttribute("path", correlation.getCorrelationPath()); correlationElement.setAttribute("state", correlation.getState()); List correlationUEIs = correlation.getCorrelationUEIs(); if (correlationUEIs.size() > 0) { for (int i = 0; i < correlationUEIs.size(); i++) { addDataElement(correlationElement, "cuei", (String) correlationUEIs.get(i)); } } if (correlation.getCorrelationMin() != null && !correlation.getCorrelationMin().trim().equals("")) { addDataElement(correlationElement, "cmin", correlation.getCorrelationMin()); } if (correlation.getCorrelationMax() != null && !correlation.getCorrelationMax().trim().equals("")) { addDataElement(correlationElement, "cmax", correlation.getCorrelationMax()); } if (correlation.getCorrelationTime() != null && !correlation.getCorrelationTime().trim().equals("")) { addDataElement(correlationElement, "ctime", correlation.getCorrelationTime()); } } return correlationElement; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?