blueflood-core/src/main/java/com/rackspacecloud/blueflood/rollup/SlotKey.java
public Collection<SlotKey> getChildrenKeys() {
        if (granularity == Granularity.FULL) {
            return ImmutableList.of();
        }

        List<SlotKey> result = new ArrayList<SlotKey>();
        Granularity finer;
        try {
            finer = granularity.finer();
        } catch (GranularityException e) {
            throw new AssertionError("Should not occur.");
        }

        int factor = finer.numSlots() / granularity.numSlots();
        for (int i = 0; i < factor; i++) {
            int childSlot = slot * factor + i;
            SlotKey child = SlotKey.of(finer, childSlot, shard);
            result.add(child);
            result.addAll(child.getChildrenKeys());
        }
        return result;
    }
public Collection<SlotKey> getChildrenKeys() {
        if (granularity == Granularity.FULL) {
            return ImmutableList.of();
        }

        List<SlotKey> result = new ArrayList<SlotKey>();
        Granularity finer;
        try {
            finer = granularity.finer();
        } catch (GranularityException e) {
            throw new AssertionError("Should not occur.");
        }

        int factor = finer.numSlots() / granularity.numSlots();
        for (int i = 0; i < factor; i++) {
            int childSlot = slot * factor + i;
            SlotKey child = SlotKey.of(finer, childSlot, shard);
            result.add(child);
            result.addAll(child.getChildrenKeys());
        }
        return result;
    }
public Collection < SlotKey > getChildrenKeys ( ) { if ( granularity == Granularity . FULL ) { return ImmutableList . of ( ) ; } List < SlotKey > result = new ArrayList < SlotKey > ( ) ; Granularity finer ; try { finer = granularity . finer ( ) ; } catch ( GranularityException e ) { throw new AssertionError ( "Should not occur." ) ; } int factor = finer . numSlots ( ) / granularity . numSlots ( ) ; for ( int i = 0 ; i < factor ; i ++ ) { int childSlot = slot * factor + i ; SlotKey child = SlotKey . of ( finer , childSlot , shard ) ; result . add ( child ) ; result . addAll ( child . getChildrenKeys ( ) ) ; } return result ; }
This method creates a collection of slot keys that are within the same
timespan of the current slot key but of a finer granularity. For example,
a slot key of granularity {@link Granularity#MIN_20 MIN_20} will have
four child keys, each of granularity {@link Granularity#MIN_5 MIN_5}.
<p>

This method is recursive, so that it also includes the current slot
key's children and their children, and so on, down to the finest
granularity. For example, a slot key of granularity
{@link Granularity#MIN_1440 MIN_1440} will have 6 immediate children of
granularity {@link Granularity#MIN_240 MIN_240}, 6*4=24 descendant slot
key of granularity {@link Granularity#MIN_60 MIN_60}, 6*4*3=72
descendant slot key of granularity {@link Granularity#MIN_20 MIN_20},
6*4*3*4=288 descendant slot key of granularity
{@link Granularity#MIN_5 MIN_5},and 6*4*3*4*1=288 descendant slot key of
granularity {@link Granularity#FULL FULL}; in that case,the top-level
call of this method will return a collection 6+24+72+288+288=678
descendants.

@return a Collection of all descendant {@link SlotKey}s
This method creates a collection of slot keys that are within the same timespan of the current slot key but of a finer granularity . For example a slot key of granularity { @link Granularity#MIN_20 MIN_20 } will have four child keys each of granularity { @link Granularity#MIN_5 MIN_5 } . <p >