]> git.donarmstrong.com Git - mothur.git/blob - command.hpp
added citation function to commands
[mothur.git] / command.hpp
1 #ifndef COMMAND_HPP
2 #define COMMAND_HPP
3
4 /*
5  *  command.h
6  *  
7  *
8  *  Created by Pat Schloss on 10/23/08.
9  *  Copyright 2008 Patrick D. Schloss. All rights reserved.
10  *
11  */
12
13 /*This class is a parent to all the command classes.  */
14
15
16 #include "mothur.h"
17 #include "optionparser.h"
18 #include "validparameter.h"
19 #include "mothurout.h"
20 #include "commandparameter.h"
21
22
23 class Command {
24         
25         public:
26                 Command() {  m = MothurOut::getInstance();   } 
27                 
28                 //needed by gui
29                 virtual string getCommandName() = 0;
30                 virtual string getCommandCategory() = 0;
31                 virtual string getHelpString() = 0;
32                 virtual string getCitation() = 0;
33                 
34                 virtual map<string, vector<string> > getOutputFiles() { return outputTypes; }
35                 virtual vector<string> setParameters() = 0; //to fill parameters
36                 virtual vector<CommandParameter> getParameters() { return parameters; }
37         
38                 virtual int execute() = 0;
39                 virtual void help() = 0;
40                 void citation() { m->mothurOut(getCitation()); }
41                 virtual ~Command() { }
42         
43         protected:
44                 MothurOut* m;
45                 bool calledHelp;
46                         
47                 map<string, vector<string> > outputTypes;
48                 vector<CommandParameter> parameters;
49         
50                 map<string, vector<string> >::iterator itTypes;
51 };
52
53 #endif