List<DataLanguageBlockWrapper> (final @NotNull Block parent) { assert !(parent instanceof DataLanguageBlockWrapper) : parent.getClass(); List<Block> children = parent.getSubBlocks(); if (children.size() == 0) return Collections.emptyList(); ArrayList<DataLanguageBlockWrapper> result = new ArrayList<>(children.size()); DataLanguageBlockWrapper prevWrapper = null; for (Block child : children) { DataLanguageBlockWrapper currWrapper = createAndAddBlock(result, child, null); if(currWrapper != null && prevWrapper != null) { Spacing spacing = parent.getSpacing(prevWrapper.getOriginal(), currWrapper.getOriginal()); prevWrapper.setRightHandSpacing(currWrapper, spacing); } prevWrapper = currWrapper; } return result; }