Java Path Relative nio getSourceFileRelativePath(Class declaringClass)

Here you can find the source of getSourceFileRelativePath(Class declaringClass)

Description

get Source File Relative Path

License

Apache License

Declaration

public static Path getSourceFileRelativePath(Class<?> declaringClass) 

Method Source Code


//package com.java2s;
/*/*from  w  ww  . j  a v  a2  s . c o  m*/
 * Copyright 2013-2017 (c) MuleSoft, Inc.
 *
 * 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.
 */

import com.google.common.base.Splitter;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
    public static Path getSourceFileRelativePath(Class<?> declaringClass) {
        Path packageRelativePath = transformIntoPath(declaringClass);
        String declaringFileName = getSourceFileName(declaringClass);
        return packageRelativePath.resolve(declaringFileName);
    }

    private static Path transformIntoPath(Class<?> clazz) {
        Splitter splitter = Splitter.on('.').omitEmptyStrings();
        Iterable<String> subPackages = splitter.split(clazz.getPackage().getName());

        Path current = Paths.get("");
        for (String subPackage : subPackages) {
            current = current.resolve(subPackage);
        }

        return current;
    }

    private static String getSourceFileName(Class<?> declaringClass) {
        final String SOURCE_FILE_EXTENSION = ".java";
        return declaringClass.getSimpleName() + SOURCE_FILE_EXTENSION;
    }
}

Related

  1. getRelativePath(Path file, Path baseDir)
  2. getRelativePath(Path rootPath, Path path)
  3. getRelativePath(String file, String directory)
  4. getRelativePath(String fullPath, String homeFolderPath)
  5. getRelativePath(String relativePathFile)
  6. isRelativePath(Path baseDir, Path file)
  7. isRelativized(final Path base, final String successor)
  8. relativePath(String input, String mainurl)
  9. relativePathTo(Path path, Path basePath)