notificationswriter.java

来自「opennms得相关源码 请大家看看」· Java 代码 · 共 136 行

JAVA
136
字号
//// 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.notification.parsers;import java.util.Collection;import java.util.List;import org.opennms.web.notification.bobject.GroupTarget;import org.opennms.web.notification.bobject.NotifTarget;import org.opennms.web.notification.bobject.Notification;import org.opennms.web.notification.bobject.NotificationTarget;import org.opennms.web.notification.bobject.UserTarget;import org.opennms.web.parsers.XMLHeader;import org.opennms.web.parsers.XMLWriteException;import org.opennms.web.parsers.XMLWriter;import org.w3c.dom.Element;/** * This class loads and saves information from the notifications.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 NotificationsWriter extends XMLWriter {    /**     */    private String status;    /**     * Default constructor, intializes the member variables     */    public NotificationsWriter(String fileName) throws XMLWriteException {        super(fileName);        // set the default notifications status        status = "on";    }    /**     */    public void setStatus(String aStatus) {        status = aStatus;    }    /**     * This method creates a new DOM tree document that represents the data in     * the collection. This document will be serialized to a file to save the     * configuration.     *      * @param notifications     *            the information to save.     * @exception XMLWriteException     */    protected void saveDocument(Collection notifications) throws XMLWriteException {        Element root = m_document.createElement("notifications");        root.setAttribute("status", status);        m_document.appendChild(root);        // write the header        XMLHeader header = new XMLHeader(getVersion(), m_document);        root.appendChild(header.getHeaderElement());        if (notifications.size() > 0) {            Object notificationsArray[] = notifications.toArray();            for (int i = 0; i < notificationsArray.length; i++) {                Notification curNotif = (Notification) notificationsArray[i];                Element curNotifElement = addEmptyElement(root, "notification");                curNotifElement.setAttribute("interval", curNotif.getInterval());                addDataElement(curNotifElement, "name", curNotif.getName());                addDataElement(curNotifElement, "comments", curNotif.getComments());                List targets = curNotif.getTargets();                for (int j = 0; j < targets.size(); j++) {                    NotificationTarget curTarget = (NotificationTarget) targets.get(j);                    Element curTargetElement = addEmptyElement(curNotifElement, "target");                    if (curTarget.getType() == NotificationTarget.TARGET_TYPE_USER) {                        addDataElement(curTargetElement, "user", ((UserTarget) curTarget).getUserName());                        addDataElement(curTargetElement, "command", ((UserTarget) curTarget).getCommandName());                    } else if (curTarget.getType() == NotificationTarget.TARGET_TYPE_NOTIF) {                        curTargetElement.setAttribute("type", "notif");                        addDataElement(curTargetElement, "notif", ((NotifTarget) curTarget).getNotifName());                        String notifInterval = ((NotifTarget) curTarget).getInterval();                        if (notifInterval != null && !notifInterval.trim().equals("")) {                            addDataElement(curTargetElement, "interval", notifInterval);                        }                    } else if (curTarget.getType() == NotificationTarget.TARGET_TYPE_GROUP) {                        curTargetElement.setAttribute("type", "group");                        addDataElement(curTargetElement, "group", ((GroupTarget) curTarget).getGroupName());                        addDataElement(curTargetElement, "command", ((GroupTarget) curTarget).getCommandName());                    }                }            }        }        serializeToFile();    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?