Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Attributes | Friends | List of all members
JDATABASE::JSelector Class Reference

Auxiliary class for specifying selection of database data. More...

#include <JSelector.hh>

Inheritance diagram for JDATABASE::JSelector:
std::vector< Selector > JMATH::JMath< JSelector > JDATABASE::getSelector< T, JAllParams, true > JDATABASE::getSelector< T, JCLBMap, true > JDATABASE::getSelector< T, JDatalogNumbers, true > JDATABASE::getSelector< T, JDetectorIntegration, true > JDATABASE::getSelector< T, JDetectors, true > JDATABASE::getSelector< T, JPersons, true > JDATABASE::getSelector< T, JPMTHVRunSettings, true > JDATABASE::getSelector< T, JRuns, true > JDATABASE::getSelector< T, JRunsetupParams, true > JDATABASE::getSelector< T, JRunSummaryNumbers, true > JDATABASE::getSelector< T, JToAshort, true >

Public Member Functions

 JSelector ()
 Default constructor. More...
 
template<class T >
 JSelector (const std::string &key, const T value, const Selector::RelOp &operand=Selector::RelOp::Equal)
 Constructor. More...
 
template<class JClass_t , class JType_t >
 JSelector (JType_t JClass_t::*data_member, const JType_t value, const Selector::RelOp &operand=Selector::RelOp::Equal)
 Constructor. More...
 
template<class JClass_t >
 JSelector (std::string JClass_t::*data_member, const std::string value, const Selector::RelOp &operand=Selector::RelOp::Equal)
 Constructor. More...
 
JSelectoradd (const JSelector &selection)
 Add selection. More...
 
template<class T >
JSelectoradd (const std::string &key, const T value, const Selector::RelOp &operand=Selector::RelOp::Equal)
 Add selection. More...
 
template<class JClass_t , class JType_t >
JSelectoradd (JType_t JClass_t::*data_member, const JType_t value, const Selector::RelOp &operand=Selector::RelOp::Equal)
 Add selection. More...
 
template<class JClass_t >
JSelectoradd (std::string JClass_t::*data_member, const std::string &value, const Selector::RelOp &operand=Selector::RelOp::Equal)
 Add selection. More...
 
JSelectormul (const JNullType &object)
 Multiply with object. More...
 

Static Public Attributes

static const char EOL = ';'
 End-of-line. More...
 

Friends

std::istream & operator>> (std::istream &in, JSelector &selector)
 Read selector from input stream. More...
 
std::ostream & operator<< (std::ostream &out, const JSelector &selector)
 Write selector to output stream. More...
 

Detailed Description

Auxiliary class for specifying selection of database data.

Definition at line 67 of file JDB/JSelector.hh.

Constructor & Destructor Documentation

JDATABASE::JSelector::JSelector ( )
inline

Default constructor.

Definition at line 81 of file JDB/JSelector.hh.

82  {}
template<class T >
JDATABASE::JSelector::JSelector ( const std::string &  key,
const T  value,
const Selector::RelOp &  operand = Selector::RelOp::Equal 
)
inline

Constructor.

Parameters
keykey
valuevalue
operandoperand

Definition at line 93 of file JDB/JSelector.hh.

94  {
95  add(key, value, operand);
96  }
JSelector & add(const JSelector &selection)
Add selection.
template<class JClass_t , class JType_t >
JDATABASE::JSelector::JSelector ( JType_t JClass_t::*  data_member,
const JType_t  value,
const Selector::RelOp &  operand = Selector::RelOp::Equal 
)
inline

Constructor.

Parameters
data_memberdata member
valuevalue
operandoperand

Definition at line 107 of file JDB/JSelector.hh.

108  {
109  add(data_member, value, operand);
110  }
JSelector & add(const JSelector &selection)
Add selection.
template<class JClass_t >
JDATABASE::JSelector::JSelector ( std::string JClass_t::*  data_member,
const std::string  value,
const Selector::RelOp &  operand = Selector::RelOp::Equal 
)
inline

Constructor.

Parameters
data_memberdata member
valuevalue
operandoperand

Definition at line 121 of file JDB/JSelector.hh.

122  {
123  add(data_member, value, operand);
124  }
JSelector & add(const JSelector &selection)
Add selection.

Member Function Documentation

JSelector& JDATABASE::JSelector::add ( const JSelector selection)
inline

Add selection.

Parameters
selectionselection
Returns
this selection

Definition at line 133 of file JDB/JSelector.hh.

134  {
135  using namespace std;
136 
137  copy(selection.begin(), selection.end(), back_inserter(*this));
138 
139  return *this;
140  }
void copy(const Head &from, JHead &to)
Copy header from from to to.
Definition: JHead.cc:153
template<class T >
JSelector& JDATABASE::JSelector::add ( const std::string &  key,
const T  value,
const Selector::RelOp &  operand = Selector::RelOp::Equal 
)
inline

Add selection.

Parameters
keykey
valuevalue
operandoperand
Returns
this selection

Definition at line 152 of file JDB/JSelector.hh.

153  {
154  using namespace std;
155 
156  ostringstream os;
157 
158  os << value;
159 
160  push_back(Selector(key.c_str(), os.str().c_str(), operand));
161 
162  return *this;
163  }
template<class JClass_t , class JType_t >
JSelector& JDATABASE::JSelector::add ( JType_t JClass_t::*  data_member,
const JType_t  value,
const Selector::RelOp &  operand = Selector::RelOp::Equal 
)
inline

Add selection.

Parameters
data_memberdata member
valuevalue
operandoperand
Returns
this selection

Definition at line 175 of file JDB/JSelector.hh.

176  {
177  return add(getColumn(data_member), value, operand);
178  }
const char * getColumn(JType_t JTable_t::*data_member)
Get column name.
Definition: JDB.hh:213
JSelector & add(const JSelector &selection)
Add selection.
template<class JClass_t >
JSelector& JDATABASE::JSelector::add ( std::string JClass_t::*  data_member,
const std::string &  value,
const Selector::RelOp &  operand = Selector::RelOp::Equal 
)
inline

Add selection.

Parameters
data_memberdata member
valuevalue
operandoperand
Returns
this selection

Definition at line 190 of file JDB/JSelector.hh.

191  {
192  return add(getColumn(data_member), value, operand);
193  }
const char * getColumn(JType_t JTable_t::*data_member)
Get column name.
Definition: JDB.hh:213
JSelector & add(const JSelector &selection)
Add selection.
JSelector & JMATH::JMath< JSelector , JNullType >::mul ( const JNullType object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 273 of file JMath.hh.

274  {
275  return static_cast<JFirst_t&>(*this) = JCalculator<JFirst_t>::calculator.mul(static_cast<const JFirst_t&>(*this), object);
276  }
Auxiliary class for arithmetic operations on objects.
Definition: JCalculator.hh:18

Friends And Related Function Documentation

std::istream& operator>> ( std::istream &  in,
JSelector selector 
)
friend

Read selector from input stream.

Parameters
ininput stream
selectorselector
Returns
input stream

Definition at line 203 of file JDB/JSelector.hh.

204  {
205  using namespace std;
206  using namespace JPP;
207 
208  string buffer;
209 
210  getline(in, buffer, JSelector::EOL);
211 
212  int operand = -1;
213 
214  for (int i = 0; i != NUMBER_OF_OPERANDS; ++i) {
215 
216  string::size_type pos = buffer.find(getOperand(i).Render());
217 
218  if (pos != string::npos && (operand == -1 || getOperand(i).Render().length() > getOperand(operand).Render().length())) {
219  operand = i;
220  }
221  }
222 
223  if (operand != -1) {
224 
225  string::size_type pos = buffer.find(getOperand(operand).Render());
226 
227  selector.push_back(Selector(JPP::trim(buffer.substr(0, pos)).c_str(),
228  JPP::trim(buffer.substr(pos + getOperand(operand).Render().length())).c_str(),
229  getOperand(operand)));
230 
231  } else {
232 
233  in.setstate(ios::badbit);
234  }
235 
236  return in;
237  }
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
Definition: JSirene.sh:45
std::string trim(const std::string &buffer)
Trim string.
Definition: JLangToolkit.hh:79
static const int NUMBER_OF_OPERANDS
Number of available operands.
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
Definition: JString.hh:478
static const char EOL
End-of-line.
const Selector::RelOp & getOperand(const int index)
Get operand.
std::ostream& operator<< ( std::ostream &  out,
const JSelector selector 
)
friend

Write selector to output stream.

Parameters
outoutput stream
selectorselector
Returns
output stream

Definition at line 247 of file JDB/JSelector.hh.

248  {
249  for (const_iterator i = selector.begin(); i != selector.end(); ++i) {
250  out << i->Name << i->RelationalOperator.Render() << i->Value << JSelector::EOL << std::endl;
251  }
252 
253  return out;
254  }
static const char EOL
End-of-line.

Member Data Documentation

const char JDATABASE::JSelector::EOL = ';'
static

End-of-line.

Definition at line 75 of file JDB/JSelector.hh.


The documentation for this class was generated from the following file: