]> git.donarmstrong.com Git - mothur.git/blobdiff - command.hpp
Revert to previous commit
[mothur.git] / command.hpp
diff --git a/command.hpp b/command.hpp
new file mode 100644 (file)
index 0000000..22f1181
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef COMMAND_HPP
+#define COMMAND_HPP
+//test2
+/*
+ *  command.h
+ *  
+ *
+ *  Created by Pat Schloss on 10/23/08.
+ *  Copyright 2008 Patrick D. Schloss. All rights reserved.
+ *
+ */
+
+/*This class is a parent to all the command classes.  */
+
+
+#include "mothur.h"
+#include "optionparser.h"
+#include "validparameter.h"
+#include "mothurout.h"
+#include "commandparameter.h"
+
+
+class Command {
+       
+       public:
+               Command() {  m = MothurOut::getInstance();   } 
+               
+               //needed by gui
+               virtual string getCommandName() = 0;
+               virtual string getCommandCategory() = 0;
+               virtual string getHelpString() = 0;
+               virtual string getCitation() = 0;
+               virtual string getDescription() = 0;
+               
+               virtual map<string, vector<string> > getOutputFiles() { return outputTypes; }
+               virtual vector<string> setParameters() = 0; //to fill parameters
+               virtual vector<CommandParameter> getParameters() { return parameters; }
+       
+               virtual int execute() = 0;
+               virtual void help() = 0;
+               void citation() { m->mothurOutEndLine(); m->mothurOut(getCitation()); m->mothurOutEndLine(); }
+               virtual ~Command() { }
+       
+       protected:
+               MothurOut* m;
+               bool calledHelp;
+                       
+               map<string, vector<string> > outputTypes;
+               vector<CommandParameter> parameters;
+       
+               map<string, vector<string> >::iterator itTypes;
+};
+
+#endif