ImmutableListPathCore implements PathCore<ImmutableListPathCore> { @Override public ImmutableListPathCore resolve(ImmutableListPathCore other) { if (other.isAbsolute()) { return other; } else if (other.getNameCount() == 0) { return this; } else { ImmutableList<String> combinedNames = ImmutableList.<String>builder() .addAll(path) .addAll(other.path) .build(); return new ImmutableListPathCore(root, combinedNames); } } ImmutableListPathCore(@Nullable String root, Iterable<String> path); static Parser parser(String separator); static Parser namedRootParser(String separator, NamedRootFormat format, String rootId); @Override boolean isAbsolute(); @Override ImmutableListPathCore getRoot(); @Override ImmutableListPathCore getFileName(); @Override ImmutableListPathCore getParent(); @Override int getNameCount(); @Override ImmutableListPathCore getName(int index); @Override ImmutableListPathCore subpath(int beginIndex, int endIndex); @Override boolean startsWith(ImmutableListPathCore other); @Override boolean endsWith(ImmutableListPathCore other); @Override ImmutableListPathCore normalize(); @Override ImmutableListPathCore resolve(ImmutableListPathCore other); @Override ImmutableListPathCore resolveSibling(ImmutableListPathCore other); @Override ImmutableListPathCore relativize(ImmutableListPathCore other); @Override String toPathString(String separator); @Override String toString(); @Override int compareTo(ImmutableListPathCore other); @Override boolean equals(Object obj); @Override int hashCode(); @Nullable String getRootString(); ImmutableList<String> getPathSegments();  }
@Test public void resolveAbsoluteIsPassthrough() { ImmutableListPathCore resolved = root.resolve(absolute); assertThat("resolved absolute is not input", resolved, sameInstance(absolute)); }
@Test public void resolveEmptyIsIdentity() { ImmutableListPathCore resolved = absolute.resolve(empty); assertThat("resolved empty is not identity", resolved, sameInstance(absolute)); }