本文整理汇总了Java中org.eclipse.core.runtime.IPath.makeRelativeTo方法的典型用法代码示例。如果您正苦于以下问题:Java IPath.makeRelativeTo方法的具体用法?Java IPath.makeRelativeTo怎么用?Java IPath.makeRelativeTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.core.runtime.IPath
的用法示例。
在下文中一共展示了IPath.makeRelativeTo方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getPathWithinPackageFragment
import org.eclipse.core.runtime.IPath; //导入方法依赖的package包/类
/**
* Return a path relative to its package fragment root
*
* @param project
* @param path
* @return
* @throws JavaModelException
*/
public static IPath getPathWithinPackageFragment(IResource ifile) throws JavaModelException {
IProject project = ifile.getProject();
IPath path = ifile.getFullPath();
String[] segments = path.segments();
IJavaProject jproject = JavaCore.create(project);
IPackageFragment[] pkgs = jproject.getPackageFragments();
IPath p = new Path("/");
for (int i = 0; i < segments.length; i++) {
for (int j = 0; j < pkgs.length; j++) {
if (pkgs[j].getPath().equals(p)) {
IPath ret = path.makeRelativeTo(pkgs[j].getPath());
return ret;
}
}
p = p.append(segments[i]);
}
return null;
}
示例2: removePackageFragmentRoot
import org.eclipse.core.runtime.IPath; //导入方法依赖的package包/类
public static IPath removePackageFragmentRoot(IProject project, IPath path) throws JavaModelException {
IJavaProject javaProject = JavaCore.create(project);
IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
for (int i = 0; i < roots.length; i++) {
if (roots[i].getPath().isPrefixOf(path))
return path.makeRelativeTo(roots[i].getPath());
}
return null;
}
示例3: buildFiles
import org.eclipse.core.runtime.IPath; //导入方法依赖的package包/类
public static PgDatabase buildFiles(Collection<IFile> files, IProgressMonitor monitor,
List<FunctionBodyContainer> funcBodies) throws InterruptedException, IOException, CoreException {
SubMonitor mon = SubMonitor.convert(monitor, files.size());
Set<String> schemaDirnamesLoaded = new HashSet<>();
IPath schemasPath = new Path(WORK_DIR_NAMES.SCHEMA.name());
PgDatabase db = new PgDatabase(false);
db.setArguments(new PgDiffArguments());
for (IFile file : files) {
IPath filePath = file.getProjectRelativePath();
if (!"sql".equals(file.getFileExtension()) || !isInProject(filePath)) { //$NON-NLS-1$
// skip non-sql or non-project files
// still report work
mon.worked(1);
continue;
}
if (schemasPath.isPrefixOf(filePath)) {
IPath relSchemasPath = filePath.makeRelativeTo(schemasPath);
String schemaDirname;
boolean schemaDefSql = relSchemasPath.segmentCount() == 1;
if (schemaDefSql) {
// schema definition SQL-file
schemaDirname = relSchemasPath.removeFileExtension().lastSegment();
} else {
// schema-contained object
// preload its schema so that search_path parses normally
schemaDirname = relSchemasPath.segment(0);
}
if (!schemaDirnamesLoaded.add(schemaDirname)) {
// schema already loaded, skip
if (schemaDefSql) {
// report schema pre-built if the same schema was to be built normally as well
mon.worked(1);
}
continue;
} else if (!schemaDefSql) {
// pre-load schema for object's search path
// otherwise we're dealing with the schema file itself, allow it to load normally
// don't pass progress monitor since this file isn't in the original load-set
loadFile(file.getProject().getFile(schemasPath.append(schemaDirname + ".sql")), //$NON-NLS-1$
null, db, funcBodies, null);
}
}
loadFile(file, mon, db, funcBodies, null);
}
return db;
}