X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=command.hpp;h=f5e09042234f1c39ac8010f859e6f69708871dc3;hb=b866e1519a60681527244036428104ad1cb90c93;hp=f65f6cc0fb14ab1d892dbcc5df567c086ca183c9;hpb=5e031adc86a1fc125c4abb3d4048f209d52f9b6d;p=mothur.git diff --git a/command.hpp b/command.hpp index f65f6cc..f5e0904 100644 --- a/command.hpp +++ b/command.hpp @@ -1,6 +1,6 @@ #ifndef COMMAND_HPP #define COMMAND_HPP - +//test2 /* * command.h * @@ -17,22 +17,37 @@ #include "optionparser.h" #include "validparameter.h" #include "mothurout.h" +#include "commandparameter.h" + class Command { public: - Command() { m = MothurOut::getInstance(); } - virtual vector getValidParameters() = 0; - virtual vector getRequiredParameters() = 0; //adding "or" as the last element indicates one of the previous is needed - virtual vector getRequiredFiles() = 0; //adding "or" as the last element indicates one of the previous is needed - virtual map > getOutputFiles() = 0; //file type to names + 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 > getOutputFiles() { return outputTypes; } + virtual string getOutputFileNameTag(string, string) = 0; //we may not know the complete filename, because some commands use info from the file to create the output file name (ie label). but we do the ending tag which should be enough to find the output file name from a list. Allows for optional passing of the inputFileName for the commands that require its extension. + virtual vector setParameters() = 0; //to fill parameters + virtual vector 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 > outputTypes; + vector parameters; map >::iterator itTypes; };