Here you can find the source of getParents(final URI uri)
public static List<URI> getParents(final URI uri)
//package com.java2s; /**// w ww . j a v a 2s .co m * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# * This file is part of the LDP4j Project: * http://www.ldp4j.org/ * * Center for Open Middleware * http://www.centeropenmiddleware.com/ * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# * Copyright (C) 2014-2016 Center for Open Middleware. * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# * Artifact : org.ldp4j.framework:ldp4j-server-core:0.2.1 * Bundle : ldp4j-server-core-0.2.1.jar * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# */ import java.net.URI; import java.util.List; import java.util.Set; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import static com.google.common.base.Preconditions.*; public class Main { public static List<URI> getParents(final URI uri) { checkNotNull(uri, "URI cannot be null"); Set<URI> parents = Sets.newLinkedHashSet(); parents.add(uri); if (uri.isAbsolute() && !uri.isOpaque()) { URI base = current(uri); while (!isRoot(base)) { parents.add(base); base = parent(base); } parents.add(base); } return Lists.newArrayList(parents); } private static URI current(final URI uri) { return uri.resolve("."); } private static boolean isRoot(URI base) { String path = base.getPath(); return "/".equals(path) || path.isEmpty(); } private static URI parent(URI base) { return base.resolve(".."); } }