package edu.sc.seis.sod.velocity.network;
import org.apache.velocity.VelocityContext;
import edu.iris.Fissures.IfNetwork.Site;
import edu.iris.Fissures.IfNetwork.SiteId;
import edu.iris.Fissures.model.MicroSecondDate;
import edu.iris.Fissures.model.QuantityImpl;
import edu.iris.Fissures.network.SiteIdUtil;
import edu.iris.Fissures.network.SiteImpl;
import edu.iris.Fissures.network.StationImpl;
import edu.sc.seis.sod.status.FissuresFormatter;
import edu.sc.seis.sod.velocity.SimpleVelocitizer;
/**
* @author groves Created on Jan 7, 2005
*/
public class VelocitySite extends Site {
public VelocitySite(SiteImpl s) {
this.site = s;
my_location = s.getLocation();
effective_time = s.getEffectiveTime();
setStation(s.getStation());
comment = s.getComment();
}
public SiteId get_id() {
return site.get_id();
}
public String get_code() {
return site.get_code();
}
public String getCode() {
return get_code();
}
public String getCodes() {
return getNet().getCode() + "." + getStation().getCode() + "."
+ getCode();
}
public VelocityStation getStation() {
return new VelocityStation((StationImpl)site.getStation());
}
public VelocityNetwork getNet() {
return getStation().getNet();
}
public MicroSecondDate getStartDate() {
return new MicroSecondDate(effective_time.start_time);
}
public MicroSecondDate getEndDate() {
return new MicroSecondDate(effective_time.end_time);
}
public String getStart() {
return FissuresFormatter.formatDate(effective_time.start_time);
}
public String getStart(String dateFormat) {
if(dateFormat.equals("longfile")) {
return FissuresFormatter.formatDateForFile(effective_time.start_time);
}
return SimpleVelocitizer.format(new MicroSecondDate(effective_time.start_time),
dateFormat);
}
public String getEnd() {
return FissuresFormatter.formatDate(effective_time.end_time);
}
public String getEnd(String dateFormat) {
if(dateFormat.equals("longfile")) {
return FissuresFormatter.formatDateForFile(effective_time.end_time);
}
return SimpleVelocitizer.format(new MicroSecondDate(effective_time.end_time),
dateFormat);
}
public String getComment() {
return comment;
}
public String getLatitude() {
return VelocityStation.df.format(site.getLocation().latitude);
}
public String getLongitude() {
return VelocityStation.df.format(site.getLocation().longitude);
}
public String getOrientedLatitude() {
if(site.getLocation().latitude < 0) {
return VelocityStation.df.format(-site.getLocation().latitude) + " S";
}
return VelocityStation.df.format(site.getLocation().latitude) + " N";
}
public String getOrientedLongitude() {
if(site.getLocation().longitude < 0) {
return VelocityStation.df.format(-site.getLocation().longitude)
+ " W";
}
return VelocityStation.df.format(site.getLocation().longitude) + " E";
}
public String getDepth() {
return FissuresFormatter.formatElevation(QuantityImpl.createQuantityImpl(site.getLocation().depth));
}
public String getElevation() {
return FissuresFormatter.formatElevation(QuantityImpl.createQuantityImpl(site.getLocation().elevation));
}
public String toString() {
return SiteIdUtil.toString(get_id());
}
private SiteImpl site;
public void insertIntoContext(VelocityContext ctx) {
ctx.put("site", this);
getStation().insertIntoContext(ctx);
}
}