class TsData implements Cloneable, Iterable<TsObservation>, IReadDataBlock {

    public TsData extendTo(final Day lastday) {
        TsPeriod s = new TsPeriod(start.getFrequency(), lastday);
        if (!lastday.equals(s.lastday())) {
            s.move(-1);
        }
        int n = s.minus(start) + 1;
        return extend(0, n - vals.length);
    }

    public  TsData(final TsDomain dom);
    public  TsData(final TsDomain dom, double val);
      TsData(final TsFrequency freq, final int beg, final int count);
    public  TsData(final TsFrequency freq, final int firstyear,
            final int firstperiod, final double[] data, boolean copydata);
    public  TsData(final TsFrequency freq, final int firstyear,
            final int firstperiod, final int count);
    public  TsData(final TsPeriod start, final double[] data, boolean copydata);
    public  TsData(final TsPeriod start, final int count);
    public  TsData(final TsPeriod start, final IReadDataBlock vals);

}