Jpp - the software that should make you happy
 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< JFirst_t, JSecond_t > JDATABASE::getSelector< T, JAHRS, true > JDATABASE::getSelector< T, JAHRSDetectorCalibration, true > JDATABASE::getSelector< T, JAllParams, true > JDATABASE::getSelector< T, JCLBID, 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 > JDATABASE::getSelector< T, JUPI, true > JDATABASE::getSelector< T, JVendorHV, 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...
 
JFirst_t & mul (const JSecond_t &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 68 of file JDB/JSelector.hh.

Constructor & Destructor Documentation

JDATABASE::JSelector::JSelector ( )
inline

Default constructor.

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

83  {}
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 94 of file JDB/JSelector.hh.

95  {
96  add(key, value, operand);
97  }
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 108 of file JDB/JSelector.hh.

109  {
110  add(data_member, value, operand);
111  }
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 122 of file JDB/JSelector.hh.

123  {
124  add(data_member, value, operand);
125  }
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 134 of file JDB/JSelector.hh.

135  {
136  using namespace std;
137 
138  copy(selection.begin(), selection.end(), back_inserter(*this));
139 
140  return *this;
141  }
void copy(const Head &from, JHead &to)
Copy header from from to to.
Definition: JHead.cc:139
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 153 of file JDB/JSelector.hh.

154  {
155  using namespace std;
156 
157  ostringstream os;
158 
159  os << value;
160 
161  push_back(Selector(key.c_str(), os.str().c_str(), operand));
162 
163  return *this;
164  }
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 176 of file JDB/JSelector.hh.

177  {
178  return add(getColumn(data_member), value, operand);
179  }
const char * getColumn(JType_t JTable_t::*data_member)
Get column name.
Definition: JDB.hh:376
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 191 of file JDB/JSelector.hh.

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

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 357 of file JMath.hh.

358  {
359  return static_cast<JFirst_t&>(*this) = JCalculator<JFirst_t>::calculator.mul(static_cast<const JFirst_t&>(*this), object);
360  }
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 204 of file JDB/JSelector.hh.

205  {
206  using namespace std;
207  using namespace JPP;
208 
209  for (string buffer; getline(in, buffer, JSelector::EOL); ) {
210 
211  int operand = -1;
212 
213  for (int i = 0; i != NUMBER_OF_OPERANDS; ++i) {
214 
215  string::size_type pos = buffer.find(getOperand(i).Render());
216 
217  if (pos != string::npos && (operand == -1 || getOperand(i).Render().length() > getOperand(operand).Render().length())) {
218  operand = i;
219  }
220  }
221 
222  if (operand != -1) {
223 
224  string::size_type pos = buffer.find(getOperand(operand).Render());
225 
226  selector.push_back(Selector(JPP::trim(buffer.substr(0, pos)).c_str(),
227  JPP::trim(buffer.substr(pos + getOperand(operand).Render().length())).c_str(),
228  getOperand(operand)));
229 
230  } else {
231 
232  in.setstate(ios::badbit);
233  }
234  }
235 
236  return in;
237  }
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.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:38
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 76 of file JDB/JSelector.hh.


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