/** * WaveformStationStatus.java * * @author Philip Crotwell */ package edu.sc.seis.sod.status.waveformArm; import java.io.IOException; import java.sql.SQLException; import org.apache.velocity.VelocityContext; import org.w3c.dom.Element; import edu.iris.Fissures.IfNetwork.Channel; import edu.iris.Fissures.IfNetwork.Site; import edu.iris.Fissures.IfNetwork.Station; import edu.iris.Fissures.network.NetworkAttrImpl; import edu.iris.Fissures.network.NetworkIdUtil; import edu.iris.Fissures.network.StationIdUtil; import edu.iris.Fissures.network.StationImpl; import edu.sc.seis.fissuresUtil.exceptionHandler.GlobalExceptionHandler; import edu.sc.seis.sod.EventChannelPair; import edu.sc.seis.sod.EventNetworkPair; import edu.sc.seis.sod.EventStationPair; import edu.sc.seis.sod.EventVectorPair; import edu.sc.seis.sod.Stage; import edu.sc.seis.sod.Standing; import edu.sc.seis.sod.Start; import edu.sc.seis.sod.Status; import edu.sc.seis.sod.status.AbstractVelocityStatus; import edu.sc.seis.sod.status.networkArm.NetworkMonitor; public class WaveformStationStatus extends AbstractVelocityStatus implements WaveformMonitor, NetworkMonitor { public WaveformStationStatus(String fileDir, String templateName) throws IOException, SQLException { super( fileDir, templateName); if(Start.getNetworkArm() != null) Start.getNetworkArm().add(this); } public WaveformStationStatus(Element config) throws IOException, SQLException { super(config); if(Start.getNetworkArm() != null) Start.getNetworkArm().add(this); } public int getNumDirDeep() { return 2; } public void update(EventNetworkPair ecp) { } public void update(EventStationPair ecp) { } public void update(EventChannelPair ecp) { Status status = ecp.getStatus(); if (status.getStage().equals(Stage.PROCESSOR) && status.getStanding().equals(Standing.SUCCESS)) { StationImpl station = (StationImpl)ecp.getChannel().getSite().getStation(); doUpdate(station); } } public void update(EventVectorPair ecp) { Status status = ecp.getStatus(); if (status.getStage().equals(Stage.PROCESSOR) && status.getStanding().equals(Standing.SUCCESS)) { StationImpl station = (StationImpl)ecp.getChannelGroup().getChannels()[0].getSite().getStation(); doUpdate(station); } } protected void doUpdate(StationImpl station) { try { int stationDbid = ((StationImpl)station).getDbid(); VelocityContext context = new VelocityContext(new StationWaveformContext((StationImpl)station)); context.put("station", station); context.put("networkid", station.get_id().network_id); context.put("network", station.getNetworkAttr()); scheduleOutput("waveformStations/"+NetworkIdUtil.toStringNoDates(station.get_id().network_id)+"/"+StationIdUtil.toStringNoDates(station.get_id())+".html", context); } catch (SQLException e) { GlobalExceptionHandler.handle(e); } } public void setArmStatus(String status) throws Exception { } public void change(Station station, Status s) { } public void change(Channel channel, Status s) { } public void change(NetworkAttrImpl net, Status status){ } public void change(Site site, Status s) { } }