/** * NetworkStatusTemplate.java * * @author Created by Omnicore CodeGuide */ package edu.sc.seis.sod.status.networkArm; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.w3c.dom.Element; import edu.iris.Fissures.network.NetworkAttrImpl; import edu.sc.seis.sod.ConfigurationException; import edu.sc.seis.sod.Status; import edu.sc.seis.sod.status.GenericTemplate; import edu.sc.seis.sod.status.NetworkGroupTemplate; public class NetworkStatusTemplate extends NetworkInfoTemplate{ private String armStatus = ""; private List networkListeners = new ArrayList(); public NetworkStatusTemplate(Element el, String baseDir, String outputLocation) throws IOException, ConfigurationException { super(baseDir, outputLocation); parse(el); write(); } public void change(NetworkAttrImpl net, Status status) { Iterator it = networkListeners.iterator(); while (it.hasNext()){ NetworkGroupTemplate ngt = (NetworkGroupTemplate)it.next(); ngt.change(net, status); } write(); } public void setArmStatus(String status) { this.armStatus = status; write(); } private class StatusFormatter implements GenericTemplate{ public String getResult(){ return armStatus; } } /**if this class has an template for this tag, it creates it using the * passed in element and returns it. Otherwise it returns null. */ protected Object getTemplate(String tag, Element el) throws ConfigurationException { if (tag.equals("networks")) { NetworkGroupTemplate t = new NetworkGroupTemplate(el); networkListeners.add(t); return t; } else if (tag.equals("status")){ return new StatusFormatter(); } return super.getTemplate(tag,el); } }