ProgrammeID.hxx
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 #ifndef PROGRAMMEID_H
00008 #define PROGRAMMEID_H
00009 
00010 #include <string>
00011 
00012 #include "DataMethod.hxx"
00013 #include "ProgrammeTable.h"
00014 
00017 template<typename DataType>
00018 class ProgrammeID : public DataMethod<DataType>
00019 {
00020 public:
00022   ProgrammeID() { DataMethod<DataType>::methodName = "ProgrammeID"; }
00023 
00025   virtual ~ProgrammeID() { }
00026 
00028   void setSource(IntMap& tbls, IntMap& aCols, StringMap aUnits)
00029   {
00030     mProgNameColNum = aCols[0];
00031     if (mProgNameColNum < 0)
00032     {
00033       throw DataMethodException("ProgrammeID method. Couldn't source");
00034     }
00035   }
00036 
00038   void setTarget(IntMap&   aCols,
00039                  StringMap aUnits)
00040   {
00041     mProgIdColNum = aCols[0];
00042   }
00043 
00045   void doit(TableData<DataType>& aData, int aFirstRow, int aLastRow)
00046   {
00047     for (int rowNum = aFirstRow; rowNum < aLastRow; ++rowNum)
00048     {
00049       std::string progName;
00050       aData.value(mProgNameColNum, rowNum, progName);
00051       aData.assign(mProgIdColNum, rowNum, atoi(mProgTable.getProgrammeId(progName).c_str()));
00052     }
00053   }
00054 
00055   
00056   void doit2(TableData<DataType>& rawData, TableData<DataType>& data, int row1, int row2) { }
00057 
00058 private:
00060   int mProgNameColNum;
00062   int mProgIdColNum;
00064   ProgrammeTable mProgTable;
00065 };
00066 
00067 #endif
00068 
00069 
00070 
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079