App::VariableExpression Class Reference

Class implementing a reference to a property. More...

#include <ExpressionParser.h>

Public Member Functions

virtual void addComponent (Component *component) override
 
ObjectIdentifier getPath () const
 
const App::PropertygetProperty () const
 Find the property this expression referse to. More...
 
virtual bool isTouched () const override
 Determine if the expression is touched or not, i.e whether the Property object it refers to is touched(). More...
 
std::string name () const
 
void setPath (const ObjectIdentifier &path)
 
virtual Expressionsimplify () const override
 Simplify the expression. More...
 
 VariableExpression (const App::DocumentObject *_owner=nullptr, const ObjectIdentifier &_var=ObjectIdentifier())
 
 ~VariableExpression ()
 
- Public Member Functions inherited from App::UnitExpression
const Base::QuantitygetQuantity () const
 
double getScaler () const
 
const Base::UnitgetUnit () const
 
const std::string getUnitString () const
 
double getValue () const
 
void setQuantity (const Base::Quantity &_quantity)
 
void setUnit (const Base::Quantity &_quantity)
 Set unit information. More...
 
virtual Expressionsimplify () const override
 Simplify the expression. More...
 
 UnitExpression (const App::DocumentObject *_owner=nullptr, const Base::Quantity &_quantity=Base::Quantity(), const std::string &_unitStr=std::string())
 
 ~UnitExpression ()
 
- Public Member Functions inherited from App::Expression
virtual void addComponent (Component *component)
 
bool adjustLinks (const std::set< App::DocumentObject * > &inList)
 
Expressioncopy () const
 
Expressioneval () const
 
 Expression (const App::DocumentObject *_owner)
 
void getDepObjects (std::map< App::DocumentObject *, bool > &, std::vector< std::string > *labels=nullptr) const
 
std::map< App::DocumentObject *, boolgetDepObjects (std::vector< std::string > *labels=nullptr) const
 
void getDeps (ExpressionDeps &deps, int option=DepNormal) const
 
ExpressionDeps getDeps (int option=DepNormal) const
 
std::map< App::ObjectIdentifier, boolgetIdentifiers () const
 
void getIdentifiers (std::map< App::ObjectIdentifier, bool > &) const
 
App::DocumentObjectgetOwner () const
 
Py::Object getPyValue () const
 
boost::any getValueAsAny () const
 
bool hasComponent () const
 
ExpressionPtr importSubNames (const std::map< std::string, std::string > &nameMap) const
 
bool isSame (const Expression &other, bool checkComment=true) const
 
virtual bool isTouched () const
 
virtual int priority () const
 
ExpressionPtr replaceObject (const App::DocumentObject *parent, App::DocumentObject *oldObj, App::DocumentObject *newObj) const
 
virtual Expressionsimplify () const =0
 
std::string toString (bool persistent=false, bool checkPriority=false, int indent=0) const
 
void toString (std::ostream &os, bool persistent=false, bool checkPriority=false, int indent=0) const
 
ExpressionPtr updateLabelReference (App::DocumentObject *obj, const std::string &ref, const char *newLabel) const
 
void visit (ExpressionVisitor &v)
 
virtual ~Expression ()
 
- Public Member Functions inherited from Base::BaseClass
 BaseClass ()
 Construction. More...
 
 BaseClass (const BaseClass &)=default
 
virtual PyObjectgetPyObject ()
 This method returns the Python wrapper for a C++ object. More...
 
virtual Type getTypeId () const
 
bool isDerivedFrom (const Type type) const
 
BaseClassoperator= (const BaseClass &)=default
 
virtual void setPyObject (PyObject *)
 
virtual ~BaseClass ()
 Destruction. More...
 

Protected Attributes

ObjectIdentifier var
 Variable name
More...
 
- Protected Attributes inherited from App::UnitExpression
PyObjectcache = nullptr
 
- Protected Attributes inherited from App::Expression
ComponentList components
 
App::DocumentObjectowner
 The document object used to access unqualified variables (i.e local scope) More...
 

Additional Inherited Members

- Public Types inherited from App::Expression
typedef std::vector< Component * > ComponentList
 
enum  DepOption { DepNormal , DepHidden , DepAll }
 
- Static Public Member Functions inherited from App::Expression
static ComponentcreateComponent (const std::string &n)
 
static ComponentcreateComponent (Expression *e1, Expression *e2=nullptr, Expression *e3=nullptr, bool isRange=false)
 
static Expressionparse (const App::DocumentObject *owner, const std::string &buffer)
 
- Static Public Member Functions inherited from Base::BaseClass
static void * create ()
 
static Type getClassTypeId ()
 
static void init ()
 
- Public Attributes inherited from App::Expression
std::string comment
 
friend ExpressionVisitor
 
- Static Protected Member Functions inherited from Base::BaseClass
static void initSubclass (Base::Type &toInit, const char *ClassName, const char *ParentName, Type::instantiationMethod method=nullptr)
 

Detailed Description

Class implementing a reference to a property.

If the name is unqualified, the owner of the expression is searched. If it is qualified, the document that contains the owning document object is searched for other document objects to search. Both labels and internal document names are searched.

Constructor & Destructor Documentation

◆ VariableExpression()

VariableExpression::VariableExpression ( const App::DocumentObject _owner = nullptr,
const ObjectIdentifier _var = ObjectIdentifier() 
)

◆ ~VariableExpression()

VariableExpression::~VariableExpression ( )

Member Function Documentation

◆ addComponent()

void VariableExpression::addComponent ( Component component)
overridevirtual

◆ getPath()

ObjectIdentifier App::VariableExpression::getPath ( ) const

◆ getProperty()

const Property * VariableExpression::getProperty ( ) const

Find the property this expression referse to.

Unqualified names (i.e the name only without any dots) are resolved in the owning DocumentObjects. Qualified names are looked up in the owning Document. It is first looked up by its internal name. If not found, the DocumentObjects' labels searched.

If something fails, an exception is thrown.

Returns
The Property object if it is derived from either PropertyInteger, PropertyFloat, or PropertyString.

References App::ObjectIdentifier::getProperty(), App::ObjectIdentifier::resolveErrorString(), and var.

◆ isTouched()

bool VariableExpression::isTouched ( void  ) const
overridevirtual

Determine if the expression is touched or not, i.e whether the Property object it refers to is touched().

Returns
True if the Property object is touched, false if not.

Reimplemented from App::Expression.

References App::ObjectIdentifier::isTouched(), and var.

◆ name()

◆ setPath()

void VariableExpression::setPath ( const ObjectIdentifier path)

References var.

◆ simplify()

Expression * VariableExpression::simplify ( ) const
overridevirtual

Simplify the expression.

Simplification of VariableExpression objects is not possible (if it is instantiated it would be an evaluation instead).

Returns
A copy of the expression.

Reimplemented from App::UnitExpression.

References App::Expression::copy().

Member Data Documentation

◆ var

ObjectIdentifier App::VariableExpression::var
protected

Variable name

Referenced by addComponent(), getProperty(), isTouched(), and setPath().


The documentation for this class was generated from the following files: