private CompositeBlockWrapper buildCompositeBlock(Block rootBlock,
                                                    @Nullable CompositeBlockWrapper parent,
                                                    int index,
                                                    @Nullable WrapImpl currentWrapParent)
  {
    final CompositeBlockWrapper wrappedRootBlock = new CompositeBlockWrapper(rootBlock, myCurrentWhiteSpace, parent);
    if (index == 0) {
      wrappedRootBlock.arrangeParentTextRange();
    }

    if (myRootBlockWrapper == null) {
      myRootBlockWrapper = wrappedRootBlock;
      myRootBlockWrapper.setIndent((IndentImpl)Indent.getNoneIndent());
    }

    if (myPositionOfInterest != -1) {
      myResult.put(wrappedRootBlock, rootBlock);
    }

    InitialInfoBuilderState state = new InitialInfoBuilderState(rootBlock, wrappedRootBlock, currentWrapParent);

    myStates.push(state);
    return wrappedRootBlock;
  }
private CompositeBlockWrapper buildCompositeBlock(Block rootBlock,
                                                    @Nullable CompositeBlockWrapper parent,
                                                    int index,
                                                    @Nullable WrapImpl currentWrapParent)