Java URI to Parent URI getParents(final URI uri)

Here you can find the source of getParents(final URI uri)

Description

get Parents

License

Apache License

Declaration

public static List<URI> getParents(final URI uri) 

Method Source Code

//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("..");
    }
}

Related

  1. getParams(URI uri)
  2. getParent(final URI uri)
  3. getParent(URI path)
  4. getParent(URI uri)
  5. getParentName(URI uri)
  6. getParentURI(URI uri)
  7. getParentURI(URI uri)
  8. getParentURI(URI uri)
  9. getParentUriPath(String uriPath)