/**
* StationWaveformContext.java
*
* @author Philip Crotwell
*/
package edu.sc.seis.sod.status.waveformArm;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.List;
import org.apache.velocity.context.AbstractContext;
import org.apache.velocity.context.Context;
import edu.iris.Fissures.network.StationImpl;
import edu.sc.seis.sod.hibernate.SodDB;
public class StationWaveformContext extends AbstractContext {
public StationWaveformContext(StationImpl station) throws SQLException {
super();
this.stationId = station;
jdbcECS = SodDB.getSingleton();
}
public StationWaveformContext(Context context, StationImpl station) throws SQLException {
super(context);
this.stationId = station;
jdbcECS = SodDB.getSingleton();
}
public Object internalGet(String key) {
if (key.equals(ALL_EVENTS)) {
List ecps = jdbcECS.getEventsForStation(stationId);
// use a set to remove duplicate events
HashSet out = new HashSet();
out.addAll(ecps);
return out;
} else if (key.equals(SUCCESS_EVENTS_KEY)) {
List ecps = jdbcECS.getSuccessfulEventsForStation(stationId);
// use a set to remove duplicate events
HashSet out = new HashSet();
out.addAll(ecps);
return out;
} else {
throw new RuntimeException("can't get for key="+key);
}
}
public boolean internalContainsKey(Object key) {
if (key.equals(ALL_EVENTS)
|| key.equals(SUCCESS_EVENTS_KEY)
|| key.equals(SUCCESS_ECPS_KEY)
|| key.equals(SUCCESS_ECGROUP_KEY)) {
return true;
} else {
throw new RuntimeException("can't get for key="+key);
}
}
public Object[] internalGetKeys() {
return new String[] {ALL_EVENTS};
}
public Object internalRemove(Object key) {
throw new RuntimeException("Read only context, operation remove not permitted: key="+key);
}
public Object internalPut(String key, Object p2) {
throw new RuntimeException("Read only context, operation put not permitted: key="+key);
}
protected StationImpl stationId;
SodDB jdbcECS;
public static final String ALL_EVENTS = "station_events";
public static final String SUCCESS_EVENTS_KEY = "successful_station_events";
public static final String SUCCESS_ECPS_KEY = "successful_event_channels";
public static final String SUCCESS_ECGROUP_KEY = "successful_event_channel_groups";
}