CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes | Friends
CaliTag Class Reference

#include <CaliTag.h>

Inheritance diagram for CaliTag:
ITag IUniqueDBObject IDBObject

Public Member Functions

 CaliTag ()
 
int fetchID () throw (std::runtime_error)
 
std::string getDataType () const
 
std::string getGeneralTag () const
 
LocationDef getLocationDef () const
 
std::string getMethod () const
 
std::string getVersion () const
 
bool operator!= (const CaliTag &t) const
 
bool operator== (const CaliTag &t) const
 
void setByID (int id) throw (std::runtime_error)
 
void setDataType (std::string dataType)
 
void setGeneralTag (std::string tag)
 
void setLocationDef (const LocationDef &locDef)
 
void setMethod (std::string method)
 
void setVersion (std::string version)
 
 ~CaliTag ()
 
- Public Member Functions inherited from IDBObject
oracle::occi::Connection * getConn () const
 
oracle::occi::Environment * getEnv () const
 
void setConnection (oracle::occi::Environment *env, oracle::occi::Connection *conn)
 
virtual ~IDBObject ()
 

Private Member Functions

void fetchAllTags (std::vector< CaliTag > *fillVec) throw (std::runtime_error)
 
void fetchParentIDs (int *locId) throw (std::runtime_error)
 
int writeDB () throw (std::runtime_error)
 

Private Attributes

std::string m_dataType
 
std::string m_genTag
 
LocationDef m_locDef
 
std::string m_method
 
std::string m_version
 

Friends

class CaliIOV
 
class EcalCondDBInterface
 

Additional Inherited Members

- Static Public Attributes inherited from IDBObject
static int const ECALDB_NROWS =1024
 
- Protected Member Functions inherited from IDBObject
void checkConnection () const throw (std::runtime_error)
 
- Protected Attributes inherited from IUniqueDBObject
int m_ID
 
- Protected Attributes inherited from IDBObject
oracle::occi::Connection * m_conn
 
oracle::occi::Environment * m_env
 

Detailed Description

Tag for Run information

Definition at line 13 of file CaliTag.h.

Constructor & Destructor Documentation

CaliTag::CaliTag ( )

Definition at line 9 of file CaliTag.cc.

References NULL.

10 {
11  m_env = NULL;
12  m_conn = NULL;
13  m_ID = 0;
14  m_genTag = "default";
16  m_method = "default";
17  m_version = "default";
18  m_dataType = "default";
19 }
std::string m_version
Definition: CaliTag.h:56
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
#define NULL
Definition: scimark2.h:8
std::string m_method
Definition: CaliTag.h:55
LocationDef m_locDef
Definition: CaliTag.h:54
std::string m_dataType
Definition: CaliTag.h:57
std::string m_genTag
Definition: CaliTag.h:53
CaliTag::~CaliTag ( )

Definition at line 23 of file CaliTag.cc.

24 {
25 }

Member Function Documentation

void CaliTag::fetchAllTags ( std::vector< CaliTag > *  fillVec)
throw (std::runtime_error
)
private

Definition at line 238 of file CaliTag.cc.

References alignCSCRings::e, setByID(), and IDBObject::setConnection().

240 {
241  this->checkConnection();
242  try {
243  Statement* stmt = m_conn->createStatement();
244  stmt->setSQL("SELECT tag_id FROM cali_tag ORDER BY tag_id");
245  ResultSet* rset = stmt->executeQuery();
246 
247  CaliTag dcutag;
248  dcutag.setConnection(m_env, m_conn);
249  while(rset->next()) {
250  dcutag.setByID( rset->getInt(1) );
251  fillVec->push_back( dcutag );
252  }
253  m_conn->terminateStatement(stmt);
254  } catch (SQLException &e) {
255  throw(std::runtime_error("CaliTag::fetchAllTags: "+e.getMessage()));
256  }
257 }
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
void setByID(int id)
Definition: CaliTag.cc:160
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:26
void setConnection(oracle::occi::Environment *env, oracle::occi::Connection *conn)
Definition: IDBObject.h:23
void checkConnection() const
Definition: IDBObject.h:41
int CaliTag::fetchID ( )
throw (std::runtime_error
)
virtual

Implements IUniqueDBObject.

Definition at line 114 of file CaliTag.cc.

References alignCSCRings::e.

116 {
117  // Return tag from memory if available
118  if (m_ID) {
119  return m_ID;
120  }
121 
122  this->checkConnection();
123 
124  // fetch the parent IDs
125  int locID;
126  this->fetchParentIDs(&locID);
127 
128  // fetch this ID
129  try {
130  Statement* stmt = m_conn->createStatement();
131  stmt->setSQL("SELECT tag_id FROM cali_tag WHERE "
132  "gen_tag = :1 AND "
133  "location_id = :2 AND "
134  "method = :3 AND "
135  "version = :4 AND "
136  "data_type = :5");
137  stmt->setString(1, m_genTag);
138  stmt->setInt(2, locID);
139  stmt->setString(3, m_method);
140  stmt->setString(4, m_version);
141  stmt->setString(5, m_dataType);
142 
143  ResultSet* rset = stmt->executeQuery();
144 
145  if (rset->next()) {
146  m_ID = rset->getInt(1);
147  } else {
148  m_ID = 0;
149  }
150  m_conn->terminateStatement(stmt);
151  } catch (SQLException &e) {
152  throw(std::runtime_error("CaliTag::fetchID: "+e.getMessage()));
153  }
154 
155  return m_ID;
156 }
std::string m_version
Definition: CaliTag.h:56
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
std::string m_method
Definition: CaliTag.h:55
std::string m_dataType
Definition: CaliTag.h:57
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:26
void fetchParentIDs(int *locId)
Definition: CaliTag.cc:261
std::string m_genTag
Definition: CaliTag.h:53
void checkConnection() const
Definition: IDBObject.h:41
void CaliTag::fetchParentIDs ( int *  locId)
throw (std::runtime_error
)
private

Definition at line 261 of file CaliTag.cc.

263 {
264  // get the location
266  *locID = m_locDef.fetchID();
267 
268  if (! *locID) {
269  throw(std::runtime_error("CaliTag::writeDB: Given location does not exist in DB"));
270  }
271 }
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
LocationDef m_locDef
Definition: CaliTag.h:54
void setConnection(oracle::occi::Environment *env, oracle::occi::Connection *conn)
Definition: IDBObject.h:23
int fetchID()
Definition: LocationDef.cc:43
string CaliTag::getDataType ( ) const

Definition at line 97 of file CaliTag.cc.

98 {
99  return m_dataType;
100 }
std::string m_dataType
Definition: CaliTag.h:57
string CaliTag::getGeneralTag ( ) const

Definition at line 29 of file CaliTag.cc.

30 {
31  return m_genTag;
32 }
std::string m_genTag
Definition: CaliTag.h:53
LocationDef CaliTag::getLocationDef ( ) const

Definition at line 46 of file CaliTag.cc.

47 {
48  return m_locDef;
49 }
LocationDef m_locDef
Definition: CaliTag.h:54
string CaliTag::getMethod ( ) const

Definition at line 63 of file CaliTag.cc.

64 {
65  return m_method;
66 }
std::string m_method
Definition: CaliTag.h:55
string CaliTag::getVersion ( ) const

Definition at line 80 of file CaliTag.cc.

81 {
82  return m_version;
83 }
std::string m_version
Definition: CaliTag.h:56
bool CaliTag::operator!= ( const CaliTag t) const
inline

Definition at line 49 of file CaliTag.h.

References lumiQTWidget::t.

49 { return !(*this == t); }
bool CaliTag::operator== ( const CaliTag t) const
inline

Definition at line 43 of file CaliTag.h.

References m_genTag, and m_locDef.

44  {
45  return (m_genTag == t.m_genTag &&
46  m_locDef == t.m_locDef);
47  }
LocationDef m_locDef
Definition: CaliTag.h:54
std::string m_genTag
Definition: CaliTag.h:53
void CaliTag::setByID ( int  id)
throw (std::runtime_error
)
virtual

Implements IUniqueDBObject.

Definition at line 160 of file CaliTag.cc.

References alignCSCRings::e.

Referenced by fetchAllTags().

162 {
163  this->checkConnection();
164 
165  try {
166  Statement* stmt = m_conn->createStatement();
167 
168  stmt->setSQL("SELECT gen_tag, location_id, method, version, data_type "
169  "FROM cali_tag WHERE tag_id = :1");
170  stmt->setInt(1, id);
171 
172  ResultSet* rset = stmt->executeQuery();
173  if (rset->next()) {
174  m_genTag = rset->getString(1);
175  int locID = rset->getInt(2);
177  m_locDef.setByID(locID);
178  m_method = rset->getString(3);
179  m_version = rset->getString(4);
180  m_dataType = rset->getString(5);
181 
182  m_ID = id;
183  } else {
184  throw(std::runtime_error("CaliTag::setByID: Given tag_id is not in the database"));
185  }
186 
187  m_conn->terminateStatement(stmt);
188  } catch (SQLException &e) {
189  throw(std::runtime_error("CaliTag::setByID: "+e.getMessage()));
190  }
191 }
std::string m_version
Definition: CaliTag.h:56
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
std::string m_method
Definition: CaliTag.h:55
LocationDef m_locDef
Definition: CaliTag.h:54
std::string m_dataType
Definition: CaliTag.h:57
oracle::occi::ResultSet ResultSet
Definition: HcalDbOmds.cc:26
std::string m_genTag
Definition: CaliTag.h:53
void setConnection(oracle::occi::Environment *env, oracle::occi::Connection *conn)
Definition: IDBObject.h:23
void setByID(int id)
Definition: LocationDef.cc:76
void checkConnection() const
Definition: IDBObject.h:41
void CaliTag::setDataType ( std::string  dataType)

Definition at line 104 of file CaliTag.cc.

References dtTPAnalyzer_cfg::dataType.

105 {
106  if (dataType != m_dataType) {
107  m_ID = 0;
109  }
110 }
std::string m_dataType
Definition: CaliTag.h:57
void CaliTag::setGeneralTag ( std::string  tag)

Definition at line 36 of file CaliTag.cc.

37 {
38  if (genTag != m_genTag) {
39  m_ID = 0;
40  m_genTag = genTag;
41  }
42 }
std::string m_genTag
Definition: CaliTag.h:53
void CaliTag::setLocationDef ( const LocationDef locDef)

Definition at line 53 of file CaliTag.cc.

54 {
55  if (locDef != m_locDef) {
56  m_ID = 0;
57  m_locDef = locDef;
58  }
59 }
LocationDef m_locDef
Definition: CaliTag.h:54
void CaliTag::setMethod ( std::string  method)
void CaliTag::setVersion ( std::string  version)

Definition at line 87 of file CaliTag.cc.

References relval_steps::version.

88 {
89  if (version != m_version) {
90  m_ID = 0;
92  }
93 }
std::string m_version
Definition: CaliTag.h:56
int CaliTag::writeDB ( )
throw (std::runtime_error
)
private

Definition at line 194 of file CaliTag.cc.

References alignCSCRings::e.

196 {
197  // see if this data is already in the DB
198  if (this->fetchID()) {
199  return m_ID;
200  }
201 
202  // check the connectioin
203  this->checkConnection();
204 
205  // fetch the parent IDs
206  int locID;
207  this->fetchParentIDs(&locID);
208 
209  // write new tag to the DB
210  try {
211  Statement* stmt = m_conn->createStatement();
212 
213  stmt->setSQL("INSERT INTO cali_tag (tag_id, gen_tag, location_id, method, version, data_type) "
214  "VALUES (cali_tag_sq.NextVal, :1, :2, :3, :4, :5)");
215  stmt->setString(1, m_genTag);
216  stmt->setInt(2, locID);
217  stmt->setString(3, m_method);
218  stmt->setString(4, m_version);
219  stmt->setString(5, m_dataType);
220 
221  stmt->executeUpdate();
222 
223  m_conn->terminateStatement(stmt);
224  } catch (SQLException &e) {
225  throw(std::runtime_error("CaliTag::writeDB: "+e.getMessage()));
226  }
227 
228  // now get the tag_id
229  if (!this->fetchID()) {
230  throw(std::runtime_error("CaliTag::writeDB: Failed to write"));
231  }
232 
233  return m_ID;
234 }
std::string m_version
Definition: CaliTag.h:56
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
oracle::occi::SQLException SQLException
Definition: HcalDbOmds.cc:27
std::string m_method
Definition: CaliTag.h:55
int fetchID()
Definition: CaliTag.cc:114
std::string m_dataType
Definition: CaliTag.h:57
void fetchParentIDs(int *locId)
Definition: CaliTag.cc:261
std::string m_genTag
Definition: CaliTag.h:53
void checkConnection() const
Definition: IDBObject.h:41

Friends And Related Function Documentation

friend class CaliIOV
friend

Definition at line 15 of file CaliTag.h.

friend class EcalCondDBInterface
friend

Definition at line 16 of file CaliTag.h.

Member Data Documentation

std::string CaliTag::m_dataType
private

Definition at line 57 of file CaliTag.h.

std::string CaliTag::m_genTag
private

Definition at line 53 of file CaliTag.h.

Referenced by operator==().

LocationDef CaliTag::m_locDef
private

Definition at line 54 of file CaliTag.h.

Referenced by operator==().

std::string CaliTag::m_method
private

Definition at line 55 of file CaliTag.h.

std::string CaliTag::m_version
private

Definition at line 56 of file CaliTag.h.