CMS 3D CMS Logo

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

ODVfeToRejectInfo Class Reference

#include <ODVfeToRejectInfo.h>

Inheritance diagram for ODVfeToRejectInfo:
IODConfig IDBObject

List of all members.

Public Member Functions

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

Private Member Functions

void clear ()
void fetchData (ODVfeToRejectInfo *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 ODVfeToRejectInfo.h.


Constructor & Destructor Documentation

ODVfeToRejectInfo::ODVfeToRejectInfo ( )

Definition at line 11 of file ODVfeToRejectInfo.cc.

References hitfit::clear(), and NULL.

ODVfeToRejectInfo::~ODVfeToRejectInfo ( )

Definition at line 30 of file ODVfeToRejectInfo.cc.

{
}

Member Function Documentation

void ODVfeToRejectInfo::clear ( void  ) [private]

Definition at line 24 of file ODVfeToRejectInfo.cc.

                             {

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

Definition at line 130 of file ODVfeToRejectInfo.cc.

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

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



  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()!="") {

      if(result->getVersion() !=0){
        m_readStmt->setSQL("SELECT * FROM " + getTable() +
                     " WHERE tag = :tag "
                     " and version = :version " );
        m_readStmt->setString(1, result->getConfigTag());
        m_readStmt->setInt(2, result->getVersion());
      } else {
        // always select the last inserted one with a given tag
        m_readStmt->setSQL("SELECT * FROM " + getTable() +
                     " WHERE tag = :1 and version= (select max(version) from "+getTable() +" where tag=:2) " );
        m_readStmt->setString(1, result->getConfigTag());
        m_readStmt->setString(2, result->getConfigTag());
      }

    } else {
      // we should never pass here 
      throw(std::runtime_error("ODVfeToRejectInfo::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("ODVfeToRejectInfo::fetchData():  "+e.getMessage()));
  }
}
int ODVfeToRejectInfo::fetchID ( ) throw (std::runtime_error)

Definition at line 183 of file ODVfeToRejectInfo.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("ODVfeToRejectInfo::fetchID:  "+e.getMessage()));
  }

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

Definition at line 36 of file ODVfeToRejectInfo.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("ODVfeToRejectInfo::fetchNextId():  "+e.getMessage()));
  }

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

Definition at line 19 of file ODVfeToRejectInfo.h.

References m_ID.

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

Implements IODConfig.

Definition at line 16 of file ODVfeToRejectInfo.h.

{ return "VFES_to_reject_INFO"; }
int ODVfeToRejectInfo::getVersion ( ) const [inline]

Definition at line 24 of file ODVfeToRejectInfo.h.

References m_version.

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

Implements IODConfig.

Definition at line 58 of file ODVfeToRejectInfo.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("ODVfeToRejectInfo::prepareWrite():  "+e.getMessage()));
  }

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

Definition at line 18 of file ODVfeToRejectInfo.h.

References errorMatrix2Lands_multiChannel::id, and m_ID.

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

Definition at line 23 of file ODVfeToRejectInfo.h.

References errorMatrix2Lands_multiChannel::id, and m_version.

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

Definition at line 97 of file ODVfeToRejectInfo.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("ODVfeToRejectInfo::writeDB():  "+e.getMessage()));
  }
  // Now get the ID
  if (!this->fetchID()) {
    throw(std::runtime_error("ODVfeToRejectInfo::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 << "ODVfeToRejectInfo>>WARNING version is "<< getVersion()<< endl; 
  }


}

Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 11 of file ODVfeToRejectInfo.h.


Member Data Documentation

int ODVfeToRejectInfo::m_ID [private]

Definition at line 42 of file ODVfeToRejectInfo.h.

Referenced by getId(), and setId().

Definition at line 43 of file ODVfeToRejectInfo.h.

Referenced by getVersion(), and setVersion().