package org.yamcs;
import org.yamcs.utils.TimeEncoding;
/**
* time interval where both ends can be open
*
**/
public class TimeInterval {
private long start, stop;
private boolean hasStart = false;
private boolean hasStop = false;
public TimeInterval(long start, long stop) {
setStart(start);
setStop(stop);
}
/**
* Creates a TimeInterval with no start and no stop
*/
public TimeInterval() {
}
/**
* creates a TimeInterval with no start but with an stop
* @return
*/
public static TimeInterval openStart(long stop) {
TimeInterval ti = new TimeInterval();
ti.setStop(stop);
return ti;
}
public boolean hasStart() {
return hasStart;
}
public boolean hasStop() {
return hasStop;
}
public void setStart(long start) {
hasStart=true;
this.start = start;
}
public long getStart() {
return start;
}
public void setStop(long stop) {
hasStop = true;
this.stop = stop;
}
public long getStop() {
return stop;
}
@Override
public String toString() {
StringBuilder sb=new StringBuilder();
sb.append("(");
if(hasStart) sb.append(start);
sb.append(",");
if(hasStop) sb.append(stop);
sb.append(")");
return sb.toString();
}
public String toStringEncoded() {
StringBuilder sb=new StringBuilder();
sb.append("(");
if(hasStart) sb.append(TimeEncoding.toString(start));
sb.append(",");
if(hasStop) sb.append(TimeEncoding.toString(stop));
sb.append(")");
return sb.toString();
}
}