/******************************************************************************* * Copyright (c) 2011 IRIS/DMC. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * IRIS/DMC- initial API and implementation * * ACKNOWLEDGEMENT * This software was developed as part of a project supported by * Cooperative Agreement Number G10AC00533 from the United States * Geological Survey. Its contents are solely the responsibility of * the authors and the USGS is not responsible for the efficacy, * safety, or suitability of this software. ******************************************************************************/ import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.joda.time.DateTime; public class ChannelEpoch implements Epoch { private DateTime started; private DateTime ended; private double latitude; private double longitude; private double elevation; private double depth; private double azimuth; private double dip; private double sampleRate; private double clockDrift; private String flags; private String instrument; private List stages = new ArrayList(); private B58 b58; private Channel channel; public ChannelEpoch(DateTime started, DateTime ended) { this.started = started; this.ended = ended; } public DateTime getStarted() { return started; } public void setStarted(DateTime started) { this.started = started; } public DateTime getEnded() { return ended; } public void setEnded(DateTime ended) { this.ended = ended; } public double getLatitude() { return latitude; } public void setLatitude(double latitude) { this.latitude = latitude; } public double getLongitude() { return longitude; } public void setLongitude(double longitude) { this.longitude = longitude; } public double getElevation() { return elevation; } public void setElevation(double elevation) { this.elevation = elevation; } public double getDepth() { return depth; } public void setDepth(double depth) { this.depth = depth; } public double getAzimuth() { return azimuth; } public void setAzimuth(double azimuth) { this.azimuth = azimuth; } public double getDip() { return dip; } public void setDip(double dip) { this.dip = dip; } public double getSampleRate() { return sampleRate; } public double getClockDrift() { return clockDrift; } public String getFlags() { return flags; } public void setSampleRate(double sampleRate) { this.sampleRate = sampleRate; } public void setClockDrift(double clockDrift) { this.clockDrift = clockDrift; } public void setFlags(String flags) { this.flags = flags; } public String getInstrument() { return instrument; } public void setInstrument(String instrument) { this.instrument = instrument; } public B58 getB58() { return this.b58; } public void setB58(B58 b58) { this.b58 = b58; } public Channel getChannel() { return channel; } public void setChannel(Channel channel) { this.channel = channel; } public List getStages() { return stages; } public void add(Stage stage){ if(stage == null){ return; } stage.setEpoch(this); this.stages.add(stage); } public void writeXml(XMLWriter out, int level) throws IOException { out.startElement(Schema.EPOCH); out.startElement(Schema.START_DATE); out.value(started.toString()); out.endElement(); out.startElement(Schema.END_DATE); out.value(ended.toString()); out.endElement(); out.startElement(Schema.LAT); out.value(latitude); out.endElement(); out.startElement(Schema.LON); out.value(longitude); out.endElement(); out.startElement(Schema.ELEVATION); out.value(elevation); out.endElement(); out.startElement(Schema.DEPTH); out.value(depth); out.endElement(); out.startElement(Schema.AZIMUTH); out.value(azimuth); out.endElement(); out.startElement(Schema.DIP); out.value(dip); out.endElement(); out.startElement(Schema.SAMPLE_RATE); out.value(sampleRate); out.endElement(); out.startElement(Schema.CLOCK_DRIFT); out.value(clockDrift); out.endElement(); if (null != instrument) { out.startElement(Schema.SENSOR); out.startElement("Type"); out.value(instrument); out.endElement(); out.endElement(); } //print stages and responses if(level > Query.CHANNEL_LEVEL){ for(Stage stage:this.stages){ stage.writeXml(out); } } Map attributes = new HashMap(); attributes.put("stage", ""+0); out.startElement("Response", attributes); this.b58.writeXml(out); out.endElement(); out.endElement(); out.flush(); } }