com.redhat.ceylon.common.ModuleUtil Maven / Gradle / Ivy
package com.redhat.ceylon.common;
import java.io.File;
public abstract class ModuleUtil {
private ModuleUtil() {
}
public static String moduleName(String moduleNameOptVersion) {
int p = moduleNameOptVersion.indexOf('/');
if (p == -1) {
return moduleNameOptVersion;
} else {
return moduleNameOptVersion.substring(0, p);
}
}
public static String moduleVersion(String moduleNameOptVersion) {
int p = moduleNameOptVersion.indexOf('/');
if (p == -1 || (p == (moduleNameOptVersion.length() - 1))) {
return null;
} else {
return moduleNameOptVersion.substring(p + 1);
}
}
public static boolean isDefaultModule(String moduleName) {
return "default".equals(moduleName);
}
public static String makeModuleName(String moduleName, String version) {
if (isDefaultModule(moduleName) || version == null) {
return moduleName;
} else {
return moduleName + "/" + version;
}
}
public static File moduleToPath(String moduleName) {
return new File(moduleName.replace('.', File.separatorChar));
}
public static File moduleToPath(File dir, String moduleName) {
return new File(dir, moduleName.replace('.', File.separatorChar));
}
public static String pathToModule(File modulePath) {
return modulePath.getPath().replace('/', '.').replace('\\', '.');
}
public static boolean isModuleFolder(Iterable paths, File modPath) {
File modDesc = new File(modPath, Constants.MODULE_DESCRIPTOR);
File path = FileUtil.searchPaths(paths, modDesc.getPath());
return path != null && (new File(path, modDesc.getPath())).isFile();
}
public static File moduleFolder(Iterable paths, File relFile) {
while (relFile != null && !isModuleFolder(paths, relFile)) {
relFile = relFile.getParentFile();
}
return relFile;
}
public static String moduleName(Iterable paths, File relFile) {
File modPath = moduleFolder(paths, relFile);
if (modPath != null) {
return ModuleUtil.pathToModule(modPath);
} else {
return "default";
}
}
/**
* Turns foo:bar into foo.bar
* Turns maven:foo:bar into foo.bar
*/
public static String toCeylonModuleName(String name){
int firstColon = name.indexOf(':');
if(firstColon == -1)
return name;
// if we have more than one colon, we can start with "maven:"
if(name.indexOf(':', firstColon+1) != -1){
// remove the prefix
if(name.startsWith("maven:"))
name = name.substring("maven:".length());
}
return name.replace(':', '.');
}
/**
* Returns true if the module name contains a ':'
*/
public static boolean isMavenModule(String name){
return name != null && name.indexOf(':') != -1;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy