class BinaryTimeTree {

    protected TimeSpan enlargeTimeRange(Collection<E> collection, TimeSpan range)
    {
        TimeSpan maxRange = range;
        if (maxRange == null)
        {
            maxRange = TimeSpan.get(0, OUR_MAX_TIME);
        }

        for (TimeSpanProvider tsp : collection)
        {
            if (!maxRange.contains(tsp.getTimeSpan()))
            {
                maxRange = maxRange.simpleUnion(tsp.getTimeSpan());
            }
        }
        return maxRange;
    }

    public  BinaryTimeTree();
    public  BinaryTimeTree(int maxValuesPerNode, int maxDepth);

}