19 : fParent(parent), fDefaultVariable(defaultVariable), fAllowPluginActivation(-1)
21 poco_assert(defaultVariable != 0);
26 const std::vector<IVariableResolver*>& resolvers)
27 : fParent(parent), fDefaultVariable(defaultVariable),
28 fVariableResolvers(resolvers), fAllowPluginActivation(-1)
30 poco_assert(defaultVariable != 0);
31 poco_assert(resolvers.size() != 0);
41 if (fParent ==
nullptr)
48 return fDefaultVariable;
53 fAllowPluginActivation= value ? 1 : 0;
58 if (fAllowPluginActivation < 0)
66 return fAllowPluginActivation;
72 poco_assert(name.size() != 0);
75 fVariables[name] = value;
81 poco_assert(name.size() != 0);
84 fVariables.remove(name);
91 poco_assert(name.size() != 0);
95 QHash<QString, Object::ConstPointer>::const_iterator iter(fVariables.find(name));
96 if (iter != fVariables.end())
98 result = iter.value();
101 if (!result.IsNull())
104 if (fParent !=
nullptr)
113 if (fVariableResolvers.size() > 0) {
114 for (
unsigned int i= 0; i < fVariableResolvers.size(); ++i) {
117 if (!variable.IsNull())
122 if (fParent !=
nullptr)
virtual Object::Pointer Resolve(const QString &name, const QList< Object::Pointer > &args)=0
IEvaluationContext * GetRoot() const override
Object::ConstPointer ResolveVariable(const QString &name, const QList< Object::Pointer > &args) const override
bool GetAllowPluginActivation() const override
virtual IEvaluationContext * GetRoot() const =0
Implements transparent reference counting.
IEvaluationContext * GetParent() const override
Object::ConstPointer GetVariable(const QString &name) const override
berry::SmartPointer< Self > Pointer
void SetAllowPluginActivation(bool value) override
virtual bool GetAllowPluginActivation() const =0
EvaluationContext(IEvaluationContext *parent, const Object::ConstPointer &defaultVariable)
Object::ConstPointer GetDefaultVariable() const override
void AddVariable(const QString &name, const Object::ConstPointer &value) override
virtual Object::ConstPointer ResolveVariable(const QString &name, const QList< Object::Pointer > &args) const =0
Object::ConstPointer RemoveVariable(const QString &name) override
virtual Object::ConstPointer GetVariable(const QString &name) const =0