class TimeSpanList extends AbstractList<TimeSpan> implements Serializable {

    public TimeSpan getExtent()
    {
        if (isEmpty())
        {
            return TimeSpan.ZERO;
        }
        else if (size() == 1)
        {
            return get(0);
        }
        else
        {
            long minTime = Long.MAX_VALUE;
            long maxTime = Long.MIN_VALUE;
            for (int index = 0; index < size(); ++index)
            {
                if (get(index).getStart() < minTime)
                {
                    minTime = get(index).getStart();
                }

                if (get(index).getEnd() > maxTime)
                {
                    maxTime = get(index).getEnd();
                }
            }
            return TimeSpan.get(minTime, maxTime);
        }
    }

}