App::Expression Class Referenceabstract

Base class for expressions. More...

#include <Expression.h>

Classes

struct  Component
 
class  Exception
 

Public Types

typedef std::vector< Component * > ComponentList
 
enum  DepOption { DepNormal , DepHidden , DepAll }
 

Public Member Functions

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...
 

Static Public Member Functions

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

std::string comment
 
friend ExpressionVisitor
 

Protected Attributes

ComponentList components
 
App::DocumentObjectowner
 The document object used to access unqualified variables (i.e local scope) More...
 

Additional Inherited Members

- 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

Base class for expressions.

Member Typedef Documentation

◆ ComponentList

Member Enumeration Documentation

◆ DepOption

Enumerator
DepNormal 
DepHidden 
DepAll 

Constructor & Destructor Documentation

◆ Expression()

Expression::Expression ( const App::DocumentObject _owner)

◆ ~Expression()

Expression::~Expression ( )
virtual

Member Function Documentation

◆ addComponent()

void Expression::addComponent ( Component component)
virtual

◆ adjustLinks()

bool Expression::adjustLinks ( const std::set< App::DocumentObject * > &  inList)

References visit().

Referenced by AdjustLinksExpressionVisitor::visit().

◆ copy()

◆ createComponent() [1/2]

Expression::Component * Expression::createComponent ( const std::string &  n)
static

◆ createComponent() [2/2]

Expression::Component * Expression::createComponent ( Expression e1,
Expression e2 = nullptr,
Expression e3 = nullptr,
bool  isRange = false 
)
static

◆ eval()

◆ getDepObjects() [1/2]

void Expression::getDepObjects ( std::map< App::DocumentObject *, bool > &  deps,
std::vector< std::string > *  labels = nullptr 
) const

◆ getDepObjects() [2/2]

std::map< App::DocumentObject *, bool > Expression::getDepObjects ( std::vector< std::string > *  labels = nullptr) const

References getDepObjects().

Referenced by getDepObjects().

◆ getDeps() [1/2]

void Expression::getDeps ( ExpressionDeps deps,
int  option = DepNormal 
) const

◆ getDeps() [2/2]

ExpressionDeps Expression::getDeps ( int  option = DepNormal) const

References getDeps().

◆ getIdentifiers() [1/2]

◆ getIdentifiers() [2/2]

void Expression::getIdentifiers ( std::map< App::ObjectIdentifier, bool > &  deps) const

References visit().

◆ getOwner()

App::DocumentObject * App::Expression::getOwner ( ) const

◆ getPyValue()

Py::Object Expression::getPyValue ( ) const

◆ getValueAsAny()

App::any Expression::getValueAsAny ( ) const

◆ hasComponent()

bool App::Expression::hasComponent ( ) const

◆ importSubNames()

ExpressionPtr Expression::importSubNames ( const std::map< std::string, std::string > &  nameMap) const

◆ isSame()

bool Expression::isSame ( const Expression other,
bool  checkComment = true 
) const

◆ isTouched()

virtual bool App::Expression::isTouched ( void  ) const
virtual

◆ parse()

◆ priority()

int Expression::priority ( ) const
virtual

Reimplemented in App::OperatorExpression, and App::ConditionalExpression.

Referenced by toString().

◆ replaceObject()

ExpressionPtr Expression::replaceObject ( const App::DocumentObject parent,
App::DocumentObject oldObj,
App::DocumentObject newObj 
) const

References copy(), and visit().

◆ simplify()

◆ toString() [1/2]

std::string Expression::toString ( bool  persistent = false,
bool  checkPriority = false,
int  indent = 0 
) const

References toString().

Referenced by isSame(), and toString().

◆ toString() [2/2]

void Expression::toString ( std::ostream &  os,
bool  persistent = false,
bool  checkPriority = false,
int  indent = 0 
) const

References priority().

◆ updateLabelReference()

ExpressionPtr Expression::updateLabelReference ( App::DocumentObject obj,
const std::string &  ref,
const char *  newLabel 
) const

◆ visit()

void Expression::visit ( ExpressionVisitor v)

Member Data Documentation

◆ comment

◆ components

ComponentList App::Expression::components
protected

Referenced by copy().

◆ ExpressionVisitor

friend App::Expression::ExpressionVisitor

◆ owner


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