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
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 }