IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
LeafsComparisonRuleOperators.h
Go to the documentation of this file.
1 // LeafsComparisonRuleOperators.h:
3 // -------------------------------
4 //
15 
16 #ifndef __IPSDKBASEPROCESSING_LEAFSCOMPARISONRULEOPERATORS_H__
17 #define __IPSDKBASEPROCESSING_LEAFSCOMPARISONRULEOPERATORS_H__
18 
20 #include <IPSDKBaseProcessing/Rule/Attribute/DataItem/Leaf/LeafsComparison/RuleLeafsComparison.h>
21 
22 namespace ipsdk {
23 namespace processor {
24 
27 
31 
33 template <typename LeafType1, typename LeafType2,
34  typename AttributeType>
35 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType::g_attributeType>,
36  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
37  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
38  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
39  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
40  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type>::type,
41  RulePtr>::type
42 isEqual(const boost::shared_ptr<AttributeType>& pAttribute)
43 {
44  return isEqual<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType>(pAttribute),
45  boost::weak_ptr<const AttributeType>(pAttribute));
46 }
47 
48 template <typename LeafType1, typename LeafType2,
49  typename AttributeType1, typename AttributeType2>
50 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
51  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
52  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
53  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
54  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
55  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
56  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
57  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
58  typename boost::is_same<typename AttributeType1::ValueType,
59  typename AttributeType2::ValueType>::type>::type,
60  RulePtr>::type
61 isEqual(const boost::shared_ptr<AttributeType1>& pAttribute1,
62  const boost::shared_ptr<AttributeType2>& pAttribute2)
63 {
64  return isEqual<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType1>(pAttribute1),
65  boost::weak_ptr<const AttributeType2>(pAttribute2));
66 }
67 
68 template <typename LeafType1, typename LeafType2,
69  typename AttributeType1, typename AttributeType2>
70 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
71  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
72  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
73  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
74  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
75  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
76  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
77  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
78  typename boost::is_same<typename AttributeType1::ValueType,
79  typename AttributeType2::ValueType>::type>::type,
80  RulePtr>::type
81 isEqual(const boost::weak_ptr<AttributeType1>& pAttribute1,
82  const boost::weak_ptr<AttributeType2>& pAttribute2)
83 {
85  boost::shared_ptr<RuleType> pOutputRule = boost::make_shared<RuleType>();
86  pOutputRule->init(pAttribute1, pAttribute2);
87 
88  return pOutputRule;
89 }
91 
95 
97 template <typename LeafType1, typename LeafType2,
98  typename AttributeType>
99 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType::g_attributeType>,
100  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
101  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
102  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
103  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
104  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type>::type,
105  RulePtr>::type
106 isNotEqual(const boost::shared_ptr<AttributeType>& pAttribute)
107 {
108  return isNotEqual<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType>(pAttribute),
109  boost::weak_ptr<const AttributeType>(pAttribute));
110 }
111 
112 template <typename LeafType1, typename LeafType2,
113  typename AttributeType1, typename AttributeType2>
114 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
115  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
116  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
117  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
118  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
119  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
120  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
121  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
122  typename boost::is_same<typename AttributeType1::ValueType,
123  typename AttributeType2::ValueType>::type>::type,
124  RulePtr>::type
125 isNotEqual(const boost::shared_ptr<AttributeType1>& pAttribute1,
126  const boost::shared_ptr<AttributeType2>& pAttribute2)
127 {
128  return isNotEqual<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType1>(pAttribute1),
129  boost::weak_ptr<const AttributeType2>(pAttribute2));
130 }
131 
132 template <typename LeafType1, typename LeafType2,
133  typename AttributeType1, typename AttributeType2>
134 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
135  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
136  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
137  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
138  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
139  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
140  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
141  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
142  typename boost::is_same<typename AttributeType1::ValueType,
143  typename AttributeType2::ValueType>::type>::type,
144  RulePtr>::type
145 isNotEqual(const boost::weak_ptr<AttributeType1>& pAttribute1,
146  const boost::weak_ptr<AttributeType2>& pAttribute2)
147 {
149  boost::shared_ptr<RuleType> pOutputRule = boost::make_shared<RuleType>();
150  pOutputRule->init(pAttribute1, pAttribute2);
151 
152  return pOutputRule;
153 }
155 
159 
161 template <typename LeafType1, typename LeafType2,
162  typename AttributeType>
163 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType::g_attributeType>,
164  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
165  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
166  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
167  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
168  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type>::type,
169  RulePtr>::type
170 isGreater(const boost::shared_ptr<AttributeType>& pAttribute)
171 {
172  return isGreater<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType>(pAttribute),
173  boost::weak_ptr<const AttributeType>(pAttribute));
174 }
175 
176 template <typename LeafType1, typename LeafType2,
177  typename AttributeType1, typename AttributeType2>
178 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
179  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
180  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
181  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
182  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
183  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
184  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
185  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
186  typename boost::is_same<typename AttributeType1::ValueType,
187  typename AttributeType2::ValueType>::type>::type,
188  RulePtr>::type
189 isGreater(const boost::shared_ptr<AttributeType1>& pAttribute1,
190  const boost::shared_ptr<AttributeType2>& pAttribute2)
191 {
192  return isGreater<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType1>(pAttribute1),
193  boost::weak_ptr<const AttributeType2>(pAttribute2));
194 }
195 
196 template <typename LeafType1, typename LeafType2,
197  typename AttributeType1, typename AttributeType2>
198 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
199  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
200  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
201  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
202  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
203  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
204  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
205  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
206  typename boost::is_same<typename AttributeType1::ValueType,
207  typename AttributeType2::ValueType>::type>::type,
208  RulePtr>::type
209 isGreater(const boost::weak_ptr<AttributeType1>& pAttribute1,
210  const boost::weak_ptr<AttributeType2>& pAttribute2)
211 {
213  boost::shared_ptr<RuleType> pOutputRule = boost::make_shared<RuleType>();
214  pOutputRule->init(pAttribute1, pAttribute2);
215 
216  return pOutputRule;
217 }
219 
223 
225 template <typename LeafType1, typename LeafType2,
226  typename AttributeType>
227 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType::g_attributeType>,
228  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
229  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
230  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
231  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
232  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type>::type,
233  RulePtr>::type
234 isLower(const boost::shared_ptr<AttributeType>& pAttribute)
235 {
236  return isLower<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType>(pAttribute),
237  boost::weak_ptr<const AttributeType>(pAttribute));
238 }
239 
240 template <typename LeafType1, typename LeafType2,
241  typename AttributeType1, typename AttributeType2>
242 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
243  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
244  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
245  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
246  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
247  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
248  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
249  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
250  typename boost::is_same<typename AttributeType1::ValueType,
251  typename AttributeType2::ValueType>::type>::type,
252  RulePtr>::type
253 isLower(const boost::shared_ptr<AttributeType1>& pAttribute1,
254  const boost::shared_ptr<AttributeType2>& pAttribute2)
255 {
256  return isLower<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType1>(pAttribute1),
257  boost::weak_ptr<const AttributeType2>(pAttribute2));
258 }
259 
260 template <typename LeafType1, typename LeafType2,
261  typename AttributeType1, typename AttributeType2>
262 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
263  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
264  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
265  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
266  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
267  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
268  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
269  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
270  typename boost::is_same<typename AttributeType1::ValueType,
271  typename AttributeType2::ValueType>::type>::type,
272  RulePtr>::type
273 isLower(const boost::weak_ptr<AttributeType1>& pAttribute1,
274  const boost::weak_ptr<AttributeType2>& pAttribute2)
275 {
277  boost::shared_ptr<RuleType> pOutputRule = boost::make_shared<RuleType>();
278  pOutputRule->init(pAttribute1, pAttribute2);
279 
280  return pOutputRule;
281 }
283 
287 
289 template <typename LeafType1, typename LeafType2,
290  typename AttributeType>
291 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType::g_attributeType>,
292  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
293  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
294  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
295  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
296  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type>::type,
297  RulePtr>::type
298 isGreaterOrEqual(const boost::shared_ptr<AttributeType>& pAttribute)
299 {
300  return isGreaterOrEqual<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType>(pAttribute),
301  boost::weak_ptr<const AttributeType>(pAttribute));
302 }
303 
304 template <typename LeafType1, typename LeafType2,
305  typename AttributeType1, typename AttributeType2>
306 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
307  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
308  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
309  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
310  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
311  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
312  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
313  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
314  typename boost::is_same<typename AttributeType1::ValueType,
315  typename AttributeType2::ValueType>::type>::type,
316  RulePtr>::type
317 isGreaterOrEqual(const boost::shared_ptr<AttributeType1>& pAttribute1,
318  const boost::shared_ptr<AttributeType2>& pAttribute2)
319 {
320  return isGreaterOrEqual<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType1>(pAttribute1),
321  boost::weak_ptr<const AttributeType2>(pAttribute2));
322 }
323 
324 template <typename LeafType1, typename LeafType2,
325  typename AttributeType1, typename AttributeType2>
326 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
327  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
328  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
329  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
330  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
331  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
332  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
333  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
334  typename boost::is_same<typename AttributeType1::ValueType,
335  typename AttributeType2::ValueType>::type>::type,
336  RulePtr>::type
337 isGreaterOrEqual(const boost::weak_ptr<AttributeType1>& pAttribute1,
338  const boost::weak_ptr<AttributeType2>& pAttribute2)
339 {
341  boost::shared_ptr<RuleType> pOutputRule = boost::make_shared<RuleType>();
342  pOutputRule->init(pAttribute1, pAttribute2);
343 
344  return pOutputRule;
345 }
347 
351 
353 template <typename LeafType1, typename LeafType2,
354  typename AttributeType>
355 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType::g_attributeType>,
356  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
357  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
358  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
359  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
360  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type>::type,
361  RulePtr>::type
362 isLowerOrEqual(const boost::shared_ptr<AttributeType>& pAttribute)
363 {
364  return isLowerOrEqual<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType>(pAttribute),
365  boost::weak_ptr<const AttributeType>(pAttribute));
366 }
367 
368 template <typename LeafType1, typename LeafType2,
369  typename AttributeType1, typename AttributeType2>
370 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
371  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
372  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
373  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
374  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
375  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
376  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
377  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
378  typename boost::is_same<typename AttributeType1::ValueType,
379  typename AttributeType2::ValueType>::type>::type,
380  RulePtr>::type
381 isLowerOrEqual(const boost::shared_ptr<AttributeType1>& pAttribute1,
382  const boost::shared_ptr<AttributeType2>& pAttribute2)
383 {
384  return isLowerOrEqual<LeafType1, LeafType2>(boost::weak_ptr<const AttributeType1>(pAttribute1),
385  boost::weak_ptr<const AttributeType2>(pAttribute2));
386 }
387 
388 template <typename LeafType1, typename LeafType2,
389  typename AttributeType1, typename AttributeType2>
390 inline typename boost::enable_if<typename boost::mpl::and_<typename boost::is_same<boost::mpl::int_<AttributeType1::g_attributeType>,
391  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
392  typename boost::is_same<boost::mpl::int_<AttributeType2::g_attributeType>,
393  boost::mpl::int_<eAttributeType::eAT_DataItem> >::type,
394  typename boost::is_same<boost::mpl::int_<LeafType1::g_itemType>,
395  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
396  typename boost::is_same<boost::mpl::int_<LeafType2::g_itemType>,
397  boost::mpl::int_<eDataItemType::eDIT_Leaf> >::type,
398  typename boost::is_same<typename AttributeType1::ValueType,
399  typename AttributeType2::ValueType>::type>::type,
400  RulePtr>::type
401 isLowerOrEqual(const boost::weak_ptr<AttributeType1>& pAttribute1,
402  const boost::weak_ptr<AttributeType2>& pAttribute2)
403 {
405  boost::shared_ptr<RuleType> pOutputRule = boost::make_shared<RuleType>();
406  pOutputRule->init(pAttribute1, pAttribute2);
407 
408  return pOutputRule;
409 }
411 
414 
415 } // end of namespace processor
416 } // end of namespace ipsdk
417 
418 #endif // __IPSDKBASEPROCESSING_LEAFSCOMPARISONRULEOPERATORS_H__
boost::enable_if< typename boost::mpl::and_< typename boost::is_same< boost::mpl::int_< AttributeType::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename boost::is_same< boost::mpl::int_< LeafType1::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type, typename boost::is_same< boost::mpl::int_< LeafType2::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type >::type, RulePtr >::type isGreater(const boost::shared_ptr< AttributeType > &pAttribute)
Rule allowing to check whether a DataItem Leaf is greater than another.
Definition: LeafsComparisonRuleOperators.h:170
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Base operators used to combined rules.
boost::enable_if< typename boost::mpl::and_< typename boost::is_same< boost::mpl::int_< AttributeType::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename boost::is_same< boost::mpl::int_< LeafType1::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type, typename boost::is_same< boost::mpl::int_< LeafType2::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type >::type, RulePtr >::type isNotEqual(const boost::shared_ptr< AttributeType > &pAttribute)
Rule allowing to check whether a DataItem Leaf is not equal to another.
Definition: LeafsComparisonRuleOperators.h:106
boost::shared_ptr< BaseRule > RulePtr
shared pointer to rule
Definition: RuleTypes.h:104
boost::enable_if< typename boost::mpl::and_< typename boost::is_same< boost::mpl::int_< AttributeType::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename boost::is_same< boost::mpl::int_< LeafType1::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type, typename boost::is_same< boost::mpl::int_< LeafType2::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type >::type, RulePtr >::type isGreaterOrEqual(const boost::shared_ptr< AttributeType > &pAttribute)
Rule allowing to check whether a DataItem Leaf is greater or equal to another.
Definition: LeafsComparisonRuleOperators.h:298
void init(const boost::weak_ptr< const AttributeType1 > &pAttribute1, const boost::weak_ptr< const AttributeType2 > &pAttribute2)
initialization of object
Definition: RuleLeafsComparison.h:104
boost::enable_if< typename boost::mpl::and_< typename boost::is_same< boost::mpl::int_< AttributeType::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename boost::is_same< boost::mpl::int_< LeafType1::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type, typename boost::is_same< boost::mpl::int_< LeafType2::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type >::type, RulePtr >::type isLower(const boost::shared_ptr< AttributeType > &pAttribute)
Rule allowing to check whether a DataItem Leaf is lower than another.
Definition: LeafsComparisonRuleOperators.h:234
boost::enable_if< typename boost::mpl::and_< typename boost::is_same< boost::mpl::int_< AttributeType::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename boost::is_same< boost::mpl::int_< LeafType1::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type, typename boost::is_same< boost::mpl::int_< LeafType2::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type >::type, RulePtr >::type isEqual(const boost::shared_ptr< AttributeType > &pAttribute)
Rule allowing to check whether a DataItem Leaf is equal to another.
Definition: LeafsComparisonRuleOperators.h:42
Concrete class for rule allowing to compare leaf values of data item attributes.
Definition: RuleLeafsComparison.h:32
boost::enable_if< typename boost::mpl::and_< typename boost::is_same< boost::mpl::int_< AttributeType::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename boost::is_same< boost::mpl::int_< LeafType1::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type, typename boost::is_same< boost::mpl::int_< LeafType2::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_Leaf > >::type >::type, RulePtr >::type isLowerOrEqual(const boost::shared_ptr< AttributeType > &pAttribute)
Rule allowing to check whether a DataItem Leaf is lower or equal to another.
Definition: LeafsComparisonRuleOperators.h:362