FolderPath { public FolderPath getParent() { if (!isRoot()) { return new FolderPath(Arrays.copyOf(path, path.length - 1)); } return this; } FolderPath(String... path);  FolderPath(FolderPath parent, String... path); FolderPath getParent(); boolean isRoot(); String getName(); void setName(String newName); String serializeAsString(); static FolderPath deserializeFromString(String pathAsString); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }
@Test public void getParent() throws Exception { assertEquals(new FolderPath("foo", "bar"), new FolderPath("foo", "bar", "beer").getParent()); }