public TimePeriod getBoundingTime(final Collection<ICollection> items) { TimePeriod res = null; Iterator<ICollection> iter = items.iterator(); while (iter.hasNext()) { ICollection iCollection = (ICollection) iter.next(); if (iCollection.isTemporal()) { IBaseTemporalCollection timeC = (IBaseTemporalCollection) iCollection; if (res == null) { res = new TimePeriod(timeC.start(), timeC.finish()); } else { res.startTime = Math.max(res.startTime, timeC.start()); res.endTime = Math.min(res.endTime, timeC.finish()); } } } return res; }