* @author TZVanaalten
*
*/
-public class HmmerCommand
+public abstract class HmmerCommand implements Runnable
{
public static final String HMMBUILD = "hmmbuild";
- private Hashtable hash = new Hashtable();
+ protected final AlignFrame af;
- protected AlignFrame af;
+ protected final AlignmentI alignment;
- protected List<ArgumentI> params;
+ protected final List<ArgumentI> params;
+ /**
+ * Constructor
+ *
+ * @param alignFrame
+ * @param args
+ */
public HmmerCommand(AlignFrame alignFrame, List<ArgumentI> args)
{
af = alignFrame;
+ alignment = af.getViewport().getAlignment();
params = args;
}
*
* @param seqs
*/
- protected void stashSequences(SequenceI[] seqs)
+ protected Hashtable stashSequences(SequenceI[] seqs)
{
- hash = SeqsetUtils.uniquify(seqs, true);
+ return SeqsetUtils.uniquify(seqs, true);
}
/**
* Restores the sequence data lost by uniquifying
*
+ * @param hashtable
* @param seqs
*/
- protected void recoverSequences(SequenceI[] seqs)
+ protected void recoverSequences(Hashtable hashtable, SequenceI[] seqs)
{
- SeqsetUtils.deuniquify(hash, seqs);
+ SeqsetUtils.deuniquify(hashtable, seqs);
}
/**
- * Runs a command as a separate process
+ * Runs a command as a separate process and waits for it to complete. Answers
+ * true if the process return status is zero, else false.
*
* @param command
* the executable command and any arguments to it
try
{
ProcessBuilder pb = new ProcessBuilder(command);
- pb.redirectErrorStream(true); // send syserr to sysout
+ pb.redirectErrorStream(true); // merge syserr to sysout
final Process p = pb.start();
new Thread(new Runnable()
{