@Override
    public int hashCode() {
        // Same algorithm as String#hashCode(), but not cached as this class is
        // mutable.
        int h = 0;
        for (int i = 0; i < length; i++) {
            h = 31 * h + charAt(i);
        }
        return h;
    }
Moves the offset forward by the specified amount and reduces the
remaining length by the same amount.
stroom-pipeline/src/main/java/stroom/pipeline/xml/converter/ds3/RingBuffer.java