List<TokenInfo> () { List<TokenInfo> list = tokens.isEmpty() ? Collections.emptyList() : new ArrayList<>(tokens); if (startIndex != 0) { // slice the first token TokenInfo first = list.get(0); TokenInfo sliced = new TokenInfo(first.contentType, first.getText().substring(startIndex), first.getHyperlinkInfo()); return ContainerUtil.concat(Collections.singletonList(sliced), list.subList(1, list.size())); } return list; }