void (final SpacingImpl spaceProperty, final BlockRangesMap helper) { performModification(() -> { if (spaceProperty != null) { spaceProperty.refresh(helper); if (spaceProperty.getMinLineFeeds() >= 0 && getLineFeeds() < spaceProperty.getMinLineFeeds()) { setLineFeeds(spaceProperty.getMinLineFeeds()); } if (getLineFeeds() > 0) { if (spaceProperty.getKeepBlankLines() > 0) { if (getLineFeeds() >= spaceProperty.getKeepBlankLines() + 1) { setLineFeeds(spaceProperty.getKeepBlankLines() + 1); } } else { if (getLineFeeds() > spaceProperty.getMinLineFeeds()) { if (spaceProperty.shouldKeepLineFeeds()) { setLineFeeds(Math.max(spaceProperty.getMinLineFeeds(), 1)); } else { setLineFeeds(spaceProperty.getMinLineFeeds()); if (getLineFeeds() == 0) mySpaces = 0; } } } if (getLineFeeds() == 1 && spaceProperty.getMinLineFeeds() == 0) { if (spaceProperty.shouldKeepLineFeeds()) { KeptLineFeedsCollector.registerLineFeed(this); } else { setLineFeeds(0); mySpaces = 0; } } if (getLineFeeds() > 0 && getLineFeeds() < spaceProperty.getPrefLineFeeds()) { setLineFeeds(spaceProperty.getPrefLineFeeds()); } } } else if (isFirst()) { setLineFeeds(0); mySpaces = 0; } }); }