Java Path Merge merge(String path, String relativePath, boolean hasAuthority)

Here you can find the source of merge(String path, String relativePath, boolean hasAuthority)

Description

5.2.3.

License

Apache License

Parameter

Parameter Description
hasAuthority a parameter

Declaration

private static String merge(String path, String relativePath, boolean hasAuthority) 

Method Source Code

//package com.java2s;
/**//from  w  w  w. jav  a2s .c om
 * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
 *   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.commons:ldp4j-commons-core:0.2.1
 *   Bundle      : ldp4j-commons-core-0.2.1.jar
 * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
 */

public class Main {
    private static final String SLASH = "/";

    /**
     * 5.2.3.  Merge Paths
     *
     *    The pseudocode above refers to a "merge" routine for merging a
     *    relative-path reference with the path of the base URI.  This is
     *    accomplished as follows:
     *
     *    o  If the base URI has a defined authority component and an empty
     *       path, then return a string consisting of "/" concatenated with the
     *       reference's path; otherwise,
     *    o  return a string consisting of the reference's path component
     *       appended to all but the last segment of the base URI's path (i.e.,
     *       excluding any characters after the right-most "/" in the base URI
     *       path, or excluding the entire base URI path if it does not contain
     *       any "/" characters).
     *
     * @param hasAuthority
     */
    private static String merge(String path, String relativePath, boolean hasAuthority) {
        String parent = path;
        if (hasAuthority && parent.isEmpty()) {
            parent = SLASH;
        }
        return parent.substring(0, parent.lastIndexOf('/') + 1).concat(relativePath);
    }
}

Related

  1. merge(String path, String relativePath)
  2. mergePath(String path1, String path2)
  3. mergePath(String... paths)
  4. mergePaths(String part1, String part2)