private void collect(IResource resource) throws CoreException { rebuild = rebuild || Info.isSchema(resource); for (int ix = 0; ix < buildlets.length; ix++) { Buildlet buildlet = buildlets[ix]; Iterator outputs = buildlet.getOutputs(resource).iterator(); while (outputs.hasNext()) { IFile output = (IFile) outputs.next(); if (work.remove(output) != null) System.out.println( "CIMBuilder: push down in build order: " + output.getName()); // push output down in the build order else System.out.println("CIMBuilder: adding to build: " + output.getName()); work.put(output, buildlet); collect(output); // not efficient since we might encounter an output many times } } }
public void run(IProgressMonitor monitor) throws CoreException { Info.putProperty(project, Info.MERGED_SCHEMA_PATH, SCHEMA); build(project.getFile(SCHEMA), monitor); }