/** * Return the total range that the layer defines. */ public TimeRange getTotalRange() { if (range == null) { range = layer.getTotalRange(time); } return range; }
void assertLayerTimeEncapsulatesChild(Time now) { for (int i=1; i<layers.size(); i++) { TimeRange prev = layers.get(i - 1).getTotalRange(now); TimeRange cur = layers.get(i).getTotalRange(now); if (cur.containsOrAlignsWith(prev) == false) { throw new IllegalArgumentException("Granularity [" + layers.get(i).getGranularity() + "] does not encapsulate the time of [" + layers.get(i - 1).getGranularity() + "]: cur=" + cur + " prev=" + prev); } } }
void assertNoCellHasPartialChildren(Time now) { for (int i=1; i<layers.size(); i++) { GranularityLayer childLayer = layers.get(i-1); TimeRange prev = childLayer.getTotalRange(now); Granularity curGran = layers.get(i).getGranularity(); if (!prev.getStartTime().alignsOnGranularity(curGran)) { throw new IllegalArgumentException("Granularity [" + childLayer.getGranularity() + "] starts at time [" + prev.getStartTime() + " which does not align on parent granularity [" + curGran + "]"); } if (!prev.getEndTime().alignsOnGranularity(curGran)) { throw new IllegalArgumentException("Granularity [" + childLayer.getGranularity() + "] ends at time [" + prev.getEndTime() + " which does not align on parent granularity [" + curGran + "]"); } } }