1 #ifndef VALIDCALCULATOR_H
2 #define VALIDCALCULATOR_H
3 
4 /*
5  *  validcalculator.h
6  *  Dotur
7  *
8  *  Created by Sarah Westcott on 1/5/09.
9  *  Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
10  *
11  */
12 
13 #include "mothurout.h"
14 #include "utils.hpp"
15 
16 //This class contains a list of all valid calculators in Mothur.
17 //It has a function which will tell you if your calculator is valid for the given parameter.
18 //When adding a new calculator you must add it to the valid list.
19 
20 
21 class ValidCalculators {
22 	public:
23 		ValidCalculators();
24 		~ValidCalculators();
25 		bool isValidCalculator(string, string);
26 		void printCalc(string, ostream&);
27 		string printCalc(string);
28 		void printCitations(vector<string>);
29 
30 	private:
31         set<string> estimators;
32 		set<string> single;
33 		set<string> shared;
34 		set<string> rarefaction;
35 		set<string> summary;
36 		set<string> sharedrarefaction;
37 		set<string> sharedsummary;
38 		set<string> vennsingle;
39 		set<string> vennshared;
40 		set<string> treegroup;
41 		set<string> matrix;
42 		set<string> heat;
43 		set<string> distance;
44         set<string> protdistance;
45 		set<string>::iterator it;
46 		set<string> allCalcs;
47 
48 		void initialSingle();
49 		void initialShared();
50 		void initialRarefaction();
51 		void initialSharedRarefact();
52 		void initialSummary();
53 		void initialSharedSummary();
54 		void initialVennSingle();
55 		void initialVennShared();
56 		void initialTreeGroups();
57 		void initialMatrix();
58 		void initialDistance();
59         void initialProtDistance();
60 		void initialHeat();
61         void initialEstimators();
62 
63 		MothurOut* m;
64 };
65 
66 #endif
67