Samchon Framework for CPP  1.0.0
NTCriteria.hpp
1 #pragma once
2 #include <samchon/API.hpp>
3 
4 #include <samchon/protocol/SharedEntityArray.hpp>
5 
6 namespace samchon
7 {
8 namespace namtree
9 {
10  class NTFactory;
11  class NTSide;
12 
13  class NTIterator;
14 
77  class SAMCHON_FRAMEWORK_API NTCriteria
78  : public virtual protocol::SharedEntityArray<NTCriteria>
79  {
80  private:
82 
83  public:
84  enum
85  {
86  LESS = -2,
87  LESS_EQUAL = -1,
88  EUQLA = 0,
89  LARGER_EQUAL = 1,
90  LARGER = 2
91  };
92 
93  protected:
94  NTFactory *factory;
95  NTCriteria *parent;
96 
97  NTSide *leftSide;
98  NTSide *rightSide;
99 
100  int operator_;
101  double weight;
102 
103  public:
104  /* ------------------------------------------------------------------------------------
105  CONSTRUCTORS
106  ------------------------------------------------------------------------------------ */
108  virtual ~NTCriteria();
109 
110  virtual void construct(std::shared_ptr<library::XML>) override;
111 
112  protected:
113  virtual auto createChild(std::shared_ptr<library::XML>)->NTCriteria* override;
114 
115  public:
116  /* ------------------------------------------------------------------------------------
117  CALCULATORS
118  ------------------------------------------------------------------------------------ */
119  virtual void initRetrieve();
120  auto calcRetrieved(NTIterator&) const -> double;
121 
122 
123  /* ------------------------------------------------------------------------------------
124  EXPORTERS
125  ------------------------------------------------------------------------------------ */
126  virtual auto TAG() const->std::string override;
127  virtual auto CHILD_TAG() const->std::string override;
128 
129  virtual auto toXML() const->std::shared_ptr<library::XML> override;
130  };
131 };
132 };
A factory for Nam-Tree objects.
Definition: NTFactory.hpp:52
An Entity and a container of children Entity objects.
Definition: EntityGroup.hpp:52
Iterator of historical data.
Definition: NTIterator.hpp:26
XML is a class representing xml object.
Definition: XML.hpp:72
Top level namespace of products built from samchon.
Definition: ByteArray.hpp:7
A side of a conditional expresson.
Definition: NTSide.hpp:32
Criteria, a conditional expression with weight.
Definition: NTCriteria.hpp:77