@Override
public void blur(int verses, RestrictionType restrict) {
assert verses >= 0;
optimizeWrites();
raiseNormalizeProtection();
if (!restrict.equals(RestrictionType.NONE)) {
super.blur(verses, restrict);
} else {
optimizeWrites();
raiseEventSuppresion();
raiseNormalizeProtection();
int maximumOrdinal = getVersification().maximumOrdinal();
BitSet newStore = new BitSet(maximumOrdinal + 1);
for (int i = store.nextSetBit(0); i >= 0; i = store.nextSetBit(i + 1)) {
int start = Math.max(1, i - verses);
int end = Math.min(maximumOrdinal, i + verses);
for (int j = start; j <= end; j++) {
newStore.set(j);
}
}
store = newStore;
lowerNormalizeProtection();
if (lowerEventSuppressionAndTest()) {
fireIntervalAdded(this, null, null);
}
}
}