CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes | Friends

FEConfigBadStripInfo Class Reference

#include <FEConfigBadStripInfo.h>

Inheritance diagram for FEConfigBadStripInfo:
IODConfig IDBObject

List of all members.

Public Member Functions

 FEConfigBadStripInfo ()
int fetchID () throw (std::runtime_error)
int fetchNextId () throw (std::runtime_error)
int getId () const
std::string getTable ()
int getVersion () const
void setId (int id)
void setParameters (std::map< std::string, std::string > my_keys_map)
void setVersion (int id)
 ~FEConfigBadStripInfo ()

Private Member Functions

void clear ()
void fetchData (FEConfigBadStripInfo *result) throw (std::runtime_error)
void prepareWrite () throw (std::runtime_error)
void writeDB () throw (std::runtime_error)

Private Attributes

int m_ID
int m_version

Friends

class EcalCondDBInterface

Detailed Description

Definition at line 9 of file FEConfigBadStripInfo.h.


Constructor & Destructor Documentation

FEConfigBadStripInfo::FEConfigBadStripInfo ( )

Definition at line 11 of file FEConfigBadStripInfo.cc.

References hitfit::clear(), and NULL.

FEConfigBadStripInfo::~FEConfigBadStripInfo ( )

Definition at line 30 of file FEConfigBadStripInfo.cc.

{
}

Member Function Documentation

void FEConfigBadStripInfo::clear ( void  ) [private]

Definition at line 24 of file FEConfigBadStripInfo.cc.

                                {

}
void FEConfigBadStripInfo::fetchData ( FEConfigBadStripInfo result) throw (std::runtime_error) [private]

Definition at line 130 of file FEConfigBadStripInfo.cc.

References alignCSCRings::e, and query::result.

{
  this->checkConnection();
  result->clear();
  if(result->getId()==0 && (result->getConfigTag()=="") ){
    throw(std::runtime_error("FEConfigBadStripInfo::fetchData(): no Id defined for this FEConfigBadStripInfo "));
  }



  try {
    if(result->getId()!=0) { 
      m_readStmt->setSQL("SELECT * FROM " + getTable() +   
                         " where  rec_id = :1 ");
      m_readStmt->setInt(1, result->getId());
    } else if (result->getConfigTag()!="") {
      m_readStmt->setSQL("SELECT * FROM " + getTable() +   
                         " where  tag=:1 AND version=:2 " );
      m_readStmt->setString(1, result->getConfigTag());
      m_readStmt->setInt(2, result->getVersion());
    } else {
      // we should never pass here 
      throw(std::runtime_error("FEConfigBadStripInfo::fetchData(): no Id defined for this record "));
    }


    ResultSet* rset = m_readStmt->executeQuery();

    rset->next();

    // 1 is the id and 2 is the config tag and 3 is the version

    result->setId(rset->getInt(1));
    result->setConfigTag(rset->getString(2));
    result->setVersion(rset->getInt(3));

  } catch (SQLException &e) {
    throw(std::runtime_error("FEConfigBadStripInfo::fetchData():  "+e.getMessage()));
  }
}
int FEConfigBadStripInfo::fetchID ( ) throw (std::runtime_error)

Definition at line 172 of file FEConfigBadStripInfo.cc.

References alignCSCRings::e.

{
  // Return from memory if available
  if (m_ID!=0) {
    return m_ID;
  }

  this->checkConnection();

  try {
    Statement* stmt = m_conn->createStatement();
    stmt->setSQL("SELECT rec_id FROM "+ getTable()+
                 " WHERE  tag=:1 and version=:2 " );

    stmt->setString(1, getConfigTag() );
    stmt->setInt(2, getVersion() );

    ResultSet* rset = stmt->executeQuery();

    if (rset->next()) {
      m_ID = rset->getInt(1);
    } else {
      m_ID = 0;
    }
    m_conn->terminateStatement(stmt);
  } catch (SQLException &e) {
    throw(std::runtime_error("FEConfigBadStripInfo::fetchID:  "+e.getMessage()));
  }

  return m_ID;
}
int FEConfigBadStripInfo::fetchNextId ( ) throw (std::runtime_error)

Definition at line 36 of file FEConfigBadStripInfo.cc.

References alignCSCRings::e, and query::result.

                                                               {

  int result=0;
  try {
    this->checkConnection();

    m_readStmt = m_conn->createStatement(); 
    m_readStmt->setSQL("select COND2CONF_INFO_SQ.NextVal from DUAL ");
    ResultSet* rset = m_readStmt->executeQuery();
    while (rset->next ()){
      result= rset->getInt(1);
    }
    result++;
    m_conn->terminateStatement(m_readStmt);
    return result; 

  } catch (SQLException &e) {
    throw(std::runtime_error("FEConfigBadStripInfo::fetchNextId():  "+e.getMessage()));
  }

}
int FEConfigBadStripInfo::getId ( ) const [inline]

Definition at line 19 of file FEConfigBadStripInfo.h.

References m_ID.

{ return m_ID; }
std::string FEConfigBadStripInfo::getTable ( ) [inline, virtual]

Implements IODConfig.

Definition at line 16 of file FEConfigBadStripInfo.h.

{ return "FE_CONFIG_BadST_INFO"; }
int FEConfigBadStripInfo::getVersion ( ) const [inline]

Definition at line 24 of file FEConfigBadStripInfo.h.

References m_version.

{ return m_version; }
void FEConfigBadStripInfo::prepareWrite ( ) throw (std::runtime_error) [private, virtual]

Implements IODConfig.

Definition at line 58 of file FEConfigBadStripInfo.cc.

References alignCSCRings::e, and getId().

{
  this->checkConnection();

  int next_id=0;
  if(getId()==0){
    next_id=fetchNextId();
  } 

  try {
    m_writeStmt = m_conn->createStatement();
    m_writeStmt->setSQL("INSERT INTO "+getTable()+" ( rec_id, tag, version) " 
                        " VALUES ( :1, :2, :3 ) " );

    m_writeStmt->setInt(1, next_id);
    m_ID=next_id;

  } catch (SQLException &e) {
    throw(std::runtime_error("FEConfigBadStripInfo::prepareWrite():  "+e.getMessage()));
  }

}
void FEConfigBadStripInfo::setId ( int  id) [inline]

Definition at line 18 of file FEConfigBadStripInfo.h.

References m_ID.

Referenced by popcon::EcalTPGBadStripHandler::getNewObjects().

{ m_ID = id; }
void FEConfigBadStripInfo::setParameters ( std::map< std::string, std::string >  my_keys_map)
void FEConfigBadStripInfo::setVersion ( int  id) [inline]

Definition at line 23 of file FEConfigBadStripInfo.h.

References m_version.

{ m_version = id; }
void FEConfigBadStripInfo::writeDB ( ) throw (std::runtime_error) [private]

Definition at line 97 of file FEConfigBadStripInfo.cc.

References gather_cfg::cout, and alignCSCRings::e.

{
  this->checkConnection();
  this->checkPrepare();

  try {

    // number 1 is the id 
    m_writeStmt->setString(2, this->getConfigTag());
    m_writeStmt->setInt(3, this->getVersion());

    m_writeStmt->executeUpdate();


  } catch (SQLException &e) {
    throw(std::runtime_error("FEConfigBadStripInfo::writeDB():  "+e.getMessage()));
  }
  // Now get the ID
  if (!this->fetchID()) {
    throw(std::runtime_error("FEConfigBadStripInfo::writeDB:  Failed to write"));
  } else {
    int old_version=this->getVersion();
    m_readStmt = m_conn->createStatement(); 
    this->fetchData (this);
    m_conn->terminateStatement(m_readStmt);
    if(this->getVersion()!=old_version) std::cout << "FEConfigBadStripInfo>>WARNING version is "<< getVersion()<< endl; 
  }


}

Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 11 of file FEConfigBadStripInfo.h.


Member Data Documentation

Definition at line 42 of file FEConfigBadStripInfo.h.

Referenced by getId(), and setId().

Definition at line 43 of file FEConfigBadStripInfo.h.

Referenced by getVersion(), and setVersion().