@Override public Path append(Path relPath) { if (relPath.isRoot()) return this; if (relPath.isSingle()) return new ChildPath(this, relPath.lastSegment().get()); String[] segments = new String[size() + relPath.size()]; int offset = this.copyInto(segments, 0); copyPathInto(relPath, segments, offset); return new MultiSegmentPath(segments); }
@Override public Path append(Path relPath) { if (relPath.isRoot()) return this; if (relPath.isSingle()) return new ChildPath(this, relPath.lastSegment().get()); String[] segments = new String[size() + relPath.size()]; int offset = this.copyInto(segments, 0); copyPathInto(relPath, segments, offset); return new MultiSegmentPath(segments); }
@Override public Path append(Path relPath) { if (relPath.isRoot()) return this; if (relPath.isSingle()) return new ChildPath(this, relPath.lastSegment().get()); String[] segments = new String[size() + relPath.size() + 1]; int offset = copyInto(segments, 0); copyPathInto(relPath, segments, offset); return new MultiSegmentPath(segments); }
return Optional.empty(); if (path.isSingle()) {
@Test public void shouldParseRootPath() { path = parse("/"); assertThat(path.isRoot()).isTrue(); assertThat(path.isSingle()).isFalse(); assertThat(path.size()).isEqualTo(0); }
@Test public void shouldParseSingleRelativePath() { path = parse("a"); assertThat(path.isRoot()).isFalse(); assertThat(path.isSingle()).isTrue(); assertThat(path.size()).isEqualTo(1); assertThat(path.segment(0)).isEqualTo("a"); }
@Test public void shouldParseSingleAbsolutePath() { path = parse("/a"); assertThat(path.isRoot()).isFalse(); assertThat(path.isSingle()).isTrue(); assertThat(path.size()).isEqualTo(1); assertThat(path.segment(0)).isEqualTo("a"); }
@Test public void shouldParseDoubleRelativePath() { path = parse("a/b"); assertThat(path.isRoot()).isFalse(); assertThat(path.isSingle()).isFalse(); assertThat(path.size()).isEqualTo(2); assertThat(path.segment(0)).isEqualTo("a"); assertThat(path.segment(1)).isEqualTo("b"); }
@Test public void shouldParseDoubleAbsolutePath() { path = parse("/a/b"); assertThat(path.isRoot()).isFalse(); assertThat(path.isSingle()).isFalse(); assertThat(path.size()).isEqualTo(2); assertThat(path.segment(0)).isEqualTo("a"); assertThat(path.segment(1)).isEqualTo("b"); }
@Test public void shouldParseMultiRelativePath() { path = parse("a/b"); assertThat(path.isRoot()).isFalse(); assertThat(path.isSingle()).isFalse(); assertThat(path.size()).isEqualTo(2); assertThat(path.segment(0)).isEqualTo("a"); assertThat(path.segment(1)).isEqualTo("b"); }
@Test public void shouldParseMultiAbsolutePath() { path = parse("/a/b/c/d/e"); assertThat(path.isRoot()).isFalse(); assertThat(path.isSingle()).isFalse(); assertThat(path.size()).isEqualTo(5); assertThat(path.segment(0)).isEqualTo("a"); assertThat(path.segment(1)).isEqualTo("b"); assertThat(path.segment(2)).isEqualTo("c"); assertThat(path.segment(3)).isEqualTo("d"); assertThat(path.segment(4)).isEqualTo("e"); }
@Override public Path append(Path relPath) { if (relPath.isRoot()) return this; if (relPath.isSingle()) return new ChildPath(this, relPath.lastSegment().get()); String[] segments = new String[size() + relPath.size()]; int offset = this.copyInto(segments, 0); copyPathInto(relPath, segments, offset); return new MultiSegmentPath(segments); }
@Override public Path append(Path relPath) { if (relPath.isRoot()) return this; if (relPath.isSingle()) return new ChildPath(this, relPath.lastSegment().get()); String[] segments = new String[size() + relPath.size()]; int offset = this.copyInto(segments, 0); copyPathInto(relPath, segments, offset); return new MultiSegmentPath(segments); }
@Override public Path append(Path relPath) { if (relPath.isRoot()) return this; if (relPath.isSingle()) return new ChildPath(this, relPath.lastSegment().get()); String[] segments = new String[size() + relPath.size() + 1]; int offset = copyInto(segments, 0); copyPathInto(relPath, segments, offset); return new MultiSegmentPath(segments); }
return Optional.empty(); if (path.isSingle()) {