package org.fluxtream.core.connectors.vos;
import org.fluxtream.core.OutsideTimeBoundariesException;
import org.fluxtream.core.TimeInterval;
import org.fluxtream.core.domain.AbstractFacet;
import org.fluxtream.core.domain.GuestSettings;
import org.fluxtream.core.mvc.models.DurationModel;
import org.joda.time.DateTimeZone;
import org.joda.time.format.ISODateTimeFormat;
public abstract class AbstractTimedFacetVO<T extends AbstractFacet> extends AbstractInstantFacetVO<T> {
public transient long end;
public DurationModel duration;
public String eventStart, eventEnd;
@Override
public void extractValues(T facet, TimeInterval timeInterval, GuestSettings settings) throws OutsideTimeBoundariesException {
super.extractValues(facet, timeInterval, settings);
this.eventStart = ISODateTimeFormat.dateTime().withZone(DateTimeZone.forTimeZone(timeInterval.getTimeZone(facet.start))).print(facet.start);
this.eventEnd = ISODateTimeFormat.dateTime().withZone(DateTimeZone.forTimeZone(timeInterval.getTimeZone(facet.end))).print(facet.end);
}
public long end(){
return ISODateTimeFormat.date().parseDateTime(this.eventEnd).getMillis();
}
public void setStart(final long millis) {
this.eventStart = ISODateTimeFormat.dateTime().withZoneUTC().print(millis);
}
public void setEnd(final long millis) {
this.eventEnd = ISODateTimeFormat.dateTime().withZoneUTC().print(millis);
}
}