CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/OnlineDB/EcalCondDB/src/LMFColor.cc

Go to the documentation of this file.
00001 #include <stdexcept>
00002 #include "OnlineDB/Oracle/interface/Oracle.h"
00003 
00004 #include "OnlineDB/EcalCondDB/interface/LMFColor.h"
00005 
00006 using namespace std;
00007 using namespace oracle::occi;
00008 
00009 LMFColor::LMFColor()
00010 {
00011   m_ID = 0;
00012   m_className = "LMFColor";
00013   m_stringFields["sname"] = "none";
00014   m_stringFields["lname"] = "none";
00015   m_intFields["color"] = -1;
00016 }
00017 
00018 LMFColor::LMFColor(oracle::occi::Environment* env,
00019                    oracle::occi::Connection* conn) : LMFUnique(env, conn)
00020 {
00021   m_ID = 0;
00022   m_className = "LMFColor";
00023   m_stringFields["sname"] = "none";
00024   m_stringFields["lname"] = "none";
00025   m_intFields["color"] = -1;
00026 }
00027 
00028 LMFColor::LMFColor(EcalDBConnection *c) : LMFUnique(c)
00029 {
00030   m_ID = 0;
00031   m_className = "LMFColor";
00032   m_stringFields["sname"] = "none";
00033   m_stringFields["lname"] = "none";
00034   m_intFields["color"] = -1;
00035 }
00036 
00037 LMFColor::LMFColor(EcalDBConnection *c, std::string color) : LMFUnique(c)
00038 {
00039   m_ID = 0;
00040   m_className = "LMFColor";
00041   m_stringFields["sname"] = "none";
00042   m_stringFields["lname"] = "none";
00043   m_intFields["color"] = -1;
00044   setName(color);
00045 }
00046 
00047 LMFColor::~LMFColor()
00048 {
00049 }
00050 
00051 std::string LMFColor::fetchAllSql(Statement *stmt) const {
00052   std::string sql = "SELECT COLOR_ID FROM LMF_COLOR_DEF";
00053   stmt->setSQL(sql);
00054   return sql;
00055 }
00056 
00057 LMFUnique * LMFColor::createObject() const {
00058   LMFColor * n = new LMFColor;
00059   n->setConnection(m_env, m_conn);
00060   return n;
00061 }
00062 
00063 std::string LMFColor::fetchIdSql(Statement *stmt) {
00064   // the query depends on the object status
00065   std::string sql;
00066   if ((getInt("color") >= 0) && (getString("sname") != "none")) {
00067     sql = "SELECT COLOR_ID FROM LMF_COLOR_DEF "
00068           "WHERE SNAME   = :1 AND COLOR_INDEX = :2";
00069     stmt->setSQL(sql);
00070     stmt->setString(1, getShortName());
00071     stmt->setInt(2, getColorIndex());
00072   } else if (getInt("color") >= 0) {
00073     sql = "SELECT COLOR_ID FROM LMF_COLOR_DEF "
00074           "WHERE COLOR_INDEX = :1";
00075     stmt->setSQL(sql);
00076     stmt->setInt(1, getColorIndex());
00077   } else if (getString("sname") != "") {
00078     sql = "SELECT COLOR_ID FROM LMF_COLOR_DEF "
00079           "WHERE SNAME   = :1";
00080     stmt->setSQL(sql);
00081     stmt->setString(1, getShortName());
00082   } 
00083   return sql;
00084 }
00085 
00086 std::string LMFColor::setByIDSql(Statement *stmt, int id) { 
00087   std::string sql = "SELECT COLOR_INDEX, SNAME, LNAME "
00088     "FROM LMF_COLOR_DEF WHERE COLOR_ID = :1";
00089   stmt->setSQL(sql);
00090   stmt->setInt(1, id);
00091   return sql;
00092 }     
00093 
00094 void LMFColor::getParameters(ResultSet *rset) {
00095   setInt("color", rset->getInt(1));
00096   setString("sname", rset->getString(2));
00097   setString("lname", rset->getString(3));
00098 }
00099 
00100 bool LMFColor::isValid() {
00101   boost::ptr_list<LMFUnique> listOfValidColors = fetchAll();
00102   boost::ptr_list<LMFUnique>::const_iterator i = listOfValidColors.begin();
00103   boost::ptr_list<LMFUnique>::const_iterator e = listOfValidColors.end();
00104   bool ret = false;
00105   while (i != e) {
00106     LMFColor *c = (LMFColor*)&(*i);
00107     if (c->getShortName() == getShortName()) {
00108       ret = true;
00109       i = e;
00110     }
00111     i++;
00112   }
00113   return ret;
00114 }