|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.vcs.profiles.commands;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Hashtable;
import org.openide.filesystems.FileObject;
import org.netbeans.modules.vcscore.VcsFileSystem;
import org.netbeans.modules.vcscore.VcsAction;
import org.netbeans.modules.vcscore.cmdline.ExecuteCommand;
import org.netbeans.modules.vcscore.commands.*;
import org.netbeans.modules.vcscore.util.Table;
/**
* The utilities for verification of files in a group.
*
* @author Martin Entlicher
*/
public class VerifyUtil extends java.lang.Object {
private VerifyUtil() {}
public static List getFOs(VcsFileSystem fileSystem, Hashtable vars) {
Collection files = ExecuteCommand.createProcessingFiles(fileSystem, vars);
ArrayList fos = new ArrayList(files.size());
for (Iterator fileIt = files.iterator(); fileIt.hasNext(); ) {
String file = (String) fileIt.next();
FileObject fo = fileSystem.findFileObject(file);
if (fo != null) {
fos.add(fo);
}
}
return fos;
}
public static void refreshFilesState(String cmdName, VcsFileSystem fileSystem, Hashtable vars) throws InterruptedException {
VcsCommand cmd = fileSystem.getCommand(cmdName);
if (VcsCommandIO.getBooleanProperty(cmd, VcsCommand.PROPERTY_RUN_ON_MULTIPLE_FILES)) {
VcsCommandExecutor vce = fileSystem.getVcsFactory().getCommandExecutor(cmd, vars);
fileSystem.getCommandsPool().preprocessCommand(vce, new Hashtable(vars), fileSystem);
fileSystem.getCommandsPool().startExecutor(vce);
try {
fileSystem.getCommandsPool().waitToFinish(vce);
} catch (InterruptedException iexc) {
fileSystem.getCommandsPool().kill(vce);
throw iexc;
}
} else {
List fos = getFOs(fileSystem, vars);
Table files = new Table();
for (Iterator it = fos.iterator(); it.hasNext(); ) {
FileObject fo = (FileObject) it.next();
files.put(fo.getPath(), fo);
}
VcsCommandExecutor[] execs = VcsAction.doCommand(files, cmd, null, fileSystem, null, null, null, null, true);
CommandsPool cpool = fileSystem.getCommandsPool();
for (int i = 0; i < execs.length; i++) {
try {
cpool.waitToFinish(execs[i]);
} catch (InterruptedException iexc) {
for (int j = i; j < execs.length; j++) {
cpool.kill(execs[j]);
}
throw iexc;
}
}
}
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.