public void arrangeLineFeeds(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;
      }
    });
  }
public void arrangeLineFeeds(final SpacingImpl spaceProperty, final BlockRangesMap helper)