List<String> getParts() {
        if (parentParts == null || parentParts.isEmpty()) {
            return leafPart == null || leafPart.isEmpty()
                    ? Collections.emptyList()
                    : Collections.singletonList(leafPart);
        } else {
            return Stream.concat(parentParts.stream(), Stream.of(leafPart))
                    .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