code: private <T extends Block> void addBlock(Block currentBlock, List<T> blocks)
      {
          if (currentBlock != null && this.matcher.match(currentBlock)) {
              blocks.add((T) currentBlock);
          }
      }
docs: Add provided {@link Block} to provided list (or create list of null) if block validate the provided
  {@link BlockMatcher}.
  
  @param <T> the class of the Blocks to return
  @param currentBlock the block to search from
  @param blocks the list of blocks to fill