]> git.donarmstrong.com Git - mothur.git/blob - command.hpp
test commit
[mothur.git] / command.hpp
1 #ifndef COMMAND_HPP
2 #define COMMAND_HPP
3 //test
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                 virtual string getDescription() = 0;
34                 
35                 virtual map<string, vector<string> > getOutputFiles() { return outputTypes; }
36                 virtual vector<string> setParameters() = 0; //to fill parameters
37                 virtual vector<CommandParameter> getParameters() { return parameters; }
38         
39                 virtual int execute() = 0;
40                 virtual void help() = 0;
41                 void citation() { m->mothurOutEndLine(); m->mothurOut(getCitation()); m->mothurOutEndLine(); }
42                 virtual ~Command() { }
43         
44         protected:
45                 MothurOut* m;
46                 bool calledHelp;
47                         
48                 map<string, vector<string> > outputTypes;
49                 vector<CommandParameter> parameters;
50         
51                 map<string, vector<string> >::iterator itTypes;
52 };
53
54 #endif