private List<String> extractParentParts(final List<String> allParts) {
        if (allParts == null || allParts.isEmpty()) {
            return Collections.emptyList();
        } else {
            validateParts(allParts);
            if (allParts.size() == 1) {
                return Collections.emptyList();
            } else {
                return allParts.subList(0, allParts.size() - 1)
                        .stream()
                        .map(String::trim)
                        .collect(Collectors.toList());
            }
        }
    }
Append parts onto the end of this and return a new {@link DocPath}
stroom-util-shared/src/main/java/stroom/util/shared/DocPath.java