Java Code Examples for org.eclipse.core.runtime.IPath.segment()

The following are Jave code examples for showing how to use segment() of the org.eclipse.core.runtime.IPath class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
Example 1
Project: gw4e.project   File: FolderSelectionGroup.java   Source Code and License Vote up 6 votes
/**
 * @return
 */
protected boolean validateContainer(Problem pb) {
	if (selectedContainer==null)  {
		pb.raiseProblem(MessageUtil.getString("select_a_folder"), Problem.PROBLEM_RESOURCE_EMPTY);
		return false;
	}
	if (!selectedContainer.exists()) {
		pb.raiseProblem(MessageUtil.getString("folder_does_not_exists"), Problem.FOLDER_PROJECT_DOES_NOT_EXIST);
		return false;
	}
	IPath path = selectedContainer.getFullPath();
	IWorkspace workspace = ResourcesPlugin.getWorkspace();
	String projectName = path.segment(0);
	if (projectName == null
			|| !workspace.getRoot().getProject(projectName).exists()) {
		pb.raiseProblem(MessageUtil.getString("project_does_not_exist"), Problem.PROBLEM_PROJECT_DOES_NOT_EXIST);
		return false;
	}
	return true;
}
 
Example 2
Project: pgcodekeeper   File: PgUIDumpLoader.java   Source Code and License Vote up 4 votes
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;
}
 
Example 3
Project: pgcodekeeper   File: PgUIDumpLoader.java   Source Code and License Vote up 4 votes
/**
 * @param path project relative path of checked resource
 * @return whether this resource is within the main database schema hierarchy
 */
public static boolean isInProject(IPath path) {
    String dir = path.segment(0);
    return dir == null ? false : Arrays.stream(ApgdiffConsts.WORK_DIR_NAMES.values())
            .map(Enum::name).anyMatch(dir::equals);
}