blueflood-core/src/main/java/com/rackspacecloud/blueflood/types/BasicRollup.java
protected void computeFromRollups(Points<BasicRollup> input) throws IOException {

        computeFromRollupsHelper( input );

        if (input.isEmpty()) {
            return;
        }

        // See this and get mind blown:
        // http://stackoverflow.com/questions/18907262/bounded-wildcard-related-compiler-error
        Map<Long, ? extends Points.Point<? extends BasicRollup>> points = input.getPoints();

        for (Map.Entry<Long, ? extends Points.Point<? extends BasicRollup>> item : points.entrySet()) {
            BasicRollup rollup = item.getValue().getData();
            if (!(rollup instanceof BasicRollup)) {
                throw new IOException("Cannot create BasicRollup from type " + rollup.getClass().getName());
            }
            BasicRollup basicRollup = (BasicRollup) rollup;
            sum += basicRollup.getSum();
        }
    }
protected void computeFromRollups(Points<BasicRollup> input) throws IOException {

        computeFromRollupsHelper( input );

        if (input.isEmpty()) {
            return;
        }

        // See this and get mind blown:
        // http://stackoverflow.com/questions/18907262/bounded-wildcard-related-compiler-error
        Map<Long, ? extends Points.Point<? extends BasicRollup>> points = input.getPoints();

        for (Map.Entry<Long, ? extends Points.Point<? extends BasicRollup>> item : points.entrySet()) {
            BasicRollup rollup = item.getValue().getData();
            if (!(rollup instanceof BasicRollup)) {
                throw new IOException("Cannot create BasicRollup from type " + rollup.getClass().getName());
            }
            BasicRollup basicRollup = (BasicRollup) rollup;
            sum += basicRollup.getSum();
        }
    }
merge rollups into this rollup.