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
FWExpressionValidator Class Reference

#include <Fireworks/Core/interface/FWExpressionValidator.h>

Inheritance diagram for FWExpressionValidator:
FWValidatorBase

Public Member Functions

virtual void fillOptions (const char *iBegin, const char *iEnd, std::vector< std::pair< boost::shared_ptr< std::string >, std::string > > &oOptions) const
 
 FWExpressionValidator ()
 
void setType (const Reflex::Type &)
 
virtual ~FWExpressionValidator ()
 
- Public Member Functions inherited from FWValidatorBase
 FWValidatorBase ()
 
virtual ~FWValidatorBase ()
 

Private Member Functions

 FWExpressionValidator (const FWExpressionValidator &)
 
const FWExpressionValidatoroperator= (const FWExpressionValidator &)
 

Private Attributes

std::vector< boost::shared_ptr
< fireworks::OptionNode > > 
m_builtins
 
std::vector< boost::shared_ptr
< fireworks::OptionNode > > 
m_options
 
Reflex::Type m_type
 

Detailed Description

Description: <one line="" class="" summary>="">

Usage: <usage>

Definition at line 35 of file FWExpressionValidator.h.

Constructor & Destructor Documentation

FWExpressionValidator::FWExpressionValidator ( )

Definition at line 170 of file FWExpressionValidator.cc.

References abs, funct::cos(), create_public_lumi_plots::exp, FUN1, FUN2, create_public_lumi_plots::log, m_builtins, max(), min, funct::pow(), funct::sin(), python.multivaluedict::sort(), mathSSE::sqrt(), and funct::tan().

171 {
172  using fireworks::OptionNode;
173  static const Reflex::Type s_float(Reflex::Type::ByTypeInfo(typeid(float)));
174  FUN1(abs);
175  FUN1(acos);
176  FUN1(asin);
177  FUN1(atan);
178  FUN1(cos);
179  FUN1(cosh);
180  FUN1(exp);
181  FUN1(log);
182  FUN1(log10);
183  FUN1(sin);
184  FUN1(sinh);
185  FUN1(sqrt);
186  FUN1(tan);
187  FUN1(tanh);
188  FUN2(atan2);
189  FUN2(chi2prob);
190  FUN2(pow);
191  FUN2(min);
192  FUN2(max);
193  std::sort(m_builtins.begin(),m_builtins.end(),
195 
196 }
#define FUN1(_fun_)
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
#define abs(x)
Definition: mlp_lapack.h:159
#define min(a, b)
Definition: mlp_lapack.h:161
#define FUN2(_fun_)
const T & max(const T &a, const T &b)
T sqrt(T t)
Definition: SSEVec.h:46
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
std::vector< boost::shared_ptr< fireworks::OptionNode > > m_builtins
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
FWExpressionValidator::~FWExpressionValidator ( )
virtual

Definition at line 203 of file FWExpressionValidator.cc.

204 {
205 }
FWExpressionValidator::FWExpressionValidator ( const FWExpressionValidator )
private

Member Function Documentation

void FWExpressionValidator::fillOptions ( const char *  iBegin,
const char *  iEnd,
std::vector< std::pair< boost::shared_ptr< std::string >, std::string > > &  oOptions 
) const
virtual

Implements FWValidatorBase.

Definition at line 272 of file FWExpressionValidator.cc.

References begin, m_options, and groupFilesInBlocks::temp.

274 {
275  using fireworks::OptionNode;
276  oOptions.clear();
277  std::vector<const char*> delimeters;
278  findTypeDelimiters(iBegin, iEnd, delimeters);
279  //must find correct OptionNode
280  const Options* nodes = &m_options;
281  const char* begin = iBegin;
282  for(std::vector<const char*>::iterator it = delimeters.begin(), itEnd = delimeters.end();
283  it != itEnd; ++it) {
284  OptionNode temp(std::string(begin,*it),
285  *it-begin,
286  Reflex::Type());
287 
288  boost::shared_ptr<OptionNode> comp(&temp, dummyDelete);
289  Options::const_iterator itFind =std::lower_bound(nodes->begin(),
290  nodes->end(),
291  comp,
293 
294  if(itFind == nodes->end() || *comp < *(*itFind) ) {
295  //no match so we have an error
296  return;
297  }
298  nodes = &((*itFind)->options());
299  begin = (*it)+1;
300  }
301 
302  //only use add items which begin with the part of the member we are trying to match
303  std::string part(begin,iEnd);
304  unsigned int part_size = part.size();
305  for(Options::const_iterator it = nodes->begin(), itEnd = nodes->end();
306  it != itEnd;
307  ++it) {
308  if(part == (*it)->description().substr(0,part_size) ) {
309  oOptions.push_back(std::make_pair(boost::shared_ptr<std::string>(const_cast<std::string*>(&((*it)->description())), dummyDelete),
310  (*it)->description().substr(part_size,(*it)->substitutionEnd()-part_size)));
311  }
312  }
313 }
std::vector< boost::shared_ptr< fireworks::OptionNode > > m_options
part
Definition: HCALResponse.h:21
#define begin
Definition: vmac.h:31
std::vector< boost::shared_ptr< fireworks::OptionNode > > Options
const FWExpressionValidator& FWExpressionValidator::operator= ( const FWExpressionValidator )
private
void FWExpressionValidator::setType ( const Reflex::Type &  iType)

Definition at line 223 of file FWExpressionValidator.cc.

References m_builtins, m_options, m_type, and python.multivaluedict::sort().

Referenced by CmsShowEDI::fillEDIFrame(), and FWTableView::selectCollection().

224 {
225  using fireworks::OptionNode;
226  m_type=iType;
227  m_options.clear();
229  OptionNode::fillOptionForType(iType, m_options);
230  std::sort(m_options.begin(),m_options.end(),
232  std::vector<boost::shared_ptr<OptionNode> >::iterator it=
233  std::unique(m_options.begin(),m_options.end(),
235  m_options.erase(it, m_options.end());
236 }
std::vector< boost::shared_ptr< fireworks::OptionNode > > m_options
std::vector< boost::shared_ptr< fireworks::OptionNode > > m_builtins

Member Data Documentation

std::vector<boost::shared_ptr<fireworks::OptionNode> > FWExpressionValidator::m_builtins
private

Definition at line 58 of file FWExpressionValidator.h.

Referenced by FWExpressionValidator(), and setType().

std::vector<boost::shared_ptr<fireworks::OptionNode> > FWExpressionValidator::m_options
private

Definition at line 57 of file FWExpressionValidator.h.

Referenced by fillOptions(), and setType().

Reflex::Type FWExpressionValidator::m_type
private

Definition at line 56 of file FWExpressionValidator.h.

Referenced by setType().