package edu.sc.seis.sod.velocity;
import org.apache.velocity.VelocityContext;
import edu.iris.Fissures.IfEvent.EventAccessOperations;
import edu.iris.Fissures.IfNetwork.Channel;
import edu.iris.Fissures.IfNetwork.NetworkAttr;
import edu.iris.Fissures.IfSeismogramDC.RequestFilter;
import edu.iris.Fissures.network.ChannelImpl;
import edu.iris.Fissures.network.StationImpl;
import edu.iris.Fissures.seismogramDC.LocalSeismogramImpl;
import edu.sc.seis.fissuresUtil.hibernate.ChannelGroup;
import edu.sc.seis.sod.CookieJar;
import edu.sc.seis.sod.status.FissuresFormatter;
import edu.sc.seis.sod.velocity.event.VelocityEvent;
import edu.sc.seis.sod.velocity.network.VelocityChannel;
import edu.sc.seis.sod.velocity.network.VelocityChannelGroup;
import edu.sc.seis.sod.velocity.network.VelocityNetwork;
import edu.sc.seis.sod.velocity.network.VelocityStation;
import edu.sc.seis.sod.velocity.seismogram.VelocitySeismogram;
/**
* @author groves
*
* Created on May 30, 2005
*/
public class ContextWrangler {
public static VelocityContext createContext() {
VelocityContext ctx = new VelocityContext();
ctx.put("formatter", new FissuresFormatter());
return ctx;
}
public static VelocityContext createContext(EventAccessOperations event) {
VelocityContext ctx = createContext();
insertIntoContext(event, ctx);
return ctx;
}
public static VelocityContext createContext(StationImpl sta) {
VelocityContext ctx = createContext();
VelocityStation velSta = new VelocityStation(sta);
velSta.insertIntoContext(ctx);
return ctx;
}
public static VelocityEvent insertIntoContext(EventAccessOperations event,
VelocityContext ctx) {
VelocityEvent ev = VelocityEvent.wrap(event);
ctx.put("event", ev);
return ev;
}
public static VelocityContext createContext(NetworkAttr net) {
VelocityContext ctx = createContext();
insertIntoContext(net, ctx);
return ctx;
}
public static VelocityNetwork insertIntoContext(NetworkAttr net,
VelocityContext ctx) {
VelocityNetwork velNet = VelocityNetwork.wrap(net);
velNet.insertIntoContext(ctx);
return velNet;
}
public static VelocityContext createContext(Channel chan) {
VelocityContext ctx = createContext();
insertIntoContext(chan, ctx);
return ctx;
}
public static VelocityChannel insertIntoContext(Channel chan,
VelocityContext ctx) {
VelocityChannel velChan = VelocityChannel.wrap(chan);
velChan.insertIntoContext(ctx);
return velChan;
}
public static VelocityChannelGroup insertIntoContext(ChannelGroup chan,
VelocityContext ctx) {
VelocityChannelGroup velChan = new VelocityChannelGroup(chan);
velChan.insertIntoContext(ctx);
return velChan;
}
public static VelocityContext createContext(EventAccessOperations event,
ChannelImpl channel,
RequestFilter[] original,
RequestFilter[] available,
LocalSeismogramImpl[] seismograms,
CookieJar cookieJar) {
VelocityContext ctx = new WaveformProcessContext(event,
channel,
original,
available,
seismograms,
cookieJar);
return ctx;
}
public static VelocitySeismogram insertIntoContext(LocalSeismogramImpl seis,
Channel chan,
VelocityContext ctx) {
VelocitySeismogram velSeis = VelocitySeismogram.wrap(seis,
insertIntoContext(chan,
ctx));
ctx.put("seismogram", velSeis);
return velSeis;
}
}