Medical Imaging Interaction Toolkit  2023.12.00
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
berryExpression.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef BERRYEXPRESSION_H_
14 #define BERRYEXPRESSION_H_
15 
16 #include "berryExpressionInfo.h"
18 #include "berryEvaluationResult.h"
20 
21 #include <berryMacros.h>
22 #include <berryObject.h>
23 
24 
25 namespace berry {
26 
38 
39 
40 public:
42 
47  static const uint HASH_CODE_NOT_COMPUTED;
48 
52  static const uint HASH_FACTOR;
53 
57  static const QString ATT_VALUE;
58 
59 private:
60 
65  mutable uint fHashCode;
66 
67 protected:
68 
82  static bool Equals(const QList<Expression::Pointer>& leftArray,
83  const QList<Expression::Pointer>& rightArray);
84 
85  static bool Equals(const QList<Object::Pointer>& leftArray,
86  const QList<Object::Pointer>& rightArray);
87 
98  static uint HashCode(Expression::Pointer object);
99 
109  static uint HashCode(const QList<Expression::Pointer>& array);
110 
111  static uint HashCode(const QList<Object::Pointer>& array);
112 
123  virtual uint ComputeHashCode() const;
124 
125 
126 public:
127 
132 
137 
138  Expression();
139  ~Expression() override;
140 
141  uint HashCode() const override;
142 
154  virtual SmartPointer<const EvaluationResult> Evaluate(IEvaluationContext* context) const = 0;
155 
165  virtual const ExpressionInfo* ComputeExpressionInfo() const;
166 
175  virtual void CollectExpressionInfo(ExpressionInfo* info) const;
176 
177  QString ToString() const override;
178 
179  bool operator==(const Object* object) const override;
180 
181 };
182 
184 {
185 public:
187  {
189  }
190 
191  void CollectExpressionInfo(ExpressionInfo* /*info*/) const override {}
192 };
193 
195 {
196 public:
198  {
200  }
201 
202  void CollectExpressionInfo(ExpressionInfo* /*info*/) const override {}
203 };
204 
205 } // namespace berry
206 
207 #endif /*BERRYEXPRESSION_H_*/
berry::EvaluationResult::TRUE_EVAL
static const SmartPointer< const EvaluationResult > TRUE_EVAL
Definition: berryEvaluationResult.h:132
berry::ExpressionInfo
Definition: berryExpressionInfo.h:35
berry::IEvaluationContext
Definition: berryIEvaluationContext.h:36
berry::Expression::TRUE_EVAL
static const Expression::Pointer TRUE_EVAL
Definition: berryExpression.h:131
berryMacros.h
berryIEvaluationContext.h
berry::SmartPointer< Self >
org_blueberry_core_expressions_Export.h
berry::TRUE_EVALExpression::Evaluate
SmartPointer< const EvaluationResult > Evaluate(IEvaluationContext *) const override
Definition: berryExpression.h:186
berry::Object
Light weight base class for most BlueBerry classes.
Definition: berryObject.h:72
berry::TRUE_EVALExpression::CollectExpressionInfo
void CollectExpressionInfo(ExpressionInfo *) const override
Definition: berryExpression.h:191
mitk::operator==
MITKCORE_EXPORT bool operator==(const InteractionEvent &a, const InteractionEvent &b)
berry::Expression
Definition: berryExpression.h:37
berry::FALSE_EVALExpression::CollectExpressionInfo
void CollectExpressionInfo(ExpressionInfo *) const override
Definition: berryExpression.h:202
berry::EvaluationResult::FALSE_EVAL
static const SmartPointer< const EvaluationResult > FALSE_EVAL
Definition: berryEvaluationResult.h:130
berry::FALSE_EVALExpression::Evaluate
SmartPointer< const EvaluationResult > Evaluate(IEvaluationContext *) const override
Definition: berryExpression.h:197
berry::FALSE_EVALExpression
Definition: berryExpression.h:194
berry::Expression::FALSE_EVAL
static const Expression::Pointer FALSE_EVAL
Definition: berryExpression.h:136
berryExpressionInfo.h
berry::TRUE_EVALExpression
Definition: berryExpression.h:183
berry::Expression::ATT_VALUE
static const QString ATT_VALUE
Definition: berryExpression.h:57
berryObjectMacro
#define berryObjectMacro(...)
Definition: berryMacros.h:33
BERRY_EXPRESSIONS
#define BERRY_EXPRESSIONS
Definition: org_blueberry_core_expressions_Export.h:26
berry::Expression::HASH_FACTOR
static const uint HASH_FACTOR
Definition: berryExpression.h:52
berry::Expression::HASH_CODE_NOT_COMPUTED
static const uint HASH_CODE_NOT_COMPUTED
Definition: berryExpression.h:47
berryObject.h
berryEvaluationResult.h
berry
Definition: QmitkPropertyItemModel.h:24