LuciadCPillar 2023.1.04
luciad::IExpressionVisitor Class Referenceabstract

Expression visitor interface that allows traversal of an Expression or a Condition. More...

#include <luciad/expressions/IExpressionVisitor.h>

Public Member Functions

virtual ~IExpressionVisitor ()=default
 
virtual void visitAnd (const std::vector< Expression > &conditions)=0
 Visits a logical and operation. More...
 
virtual void visitBBox (const Expression &expression)=0
 Visits a bbox expression. More...
 
virtual void visitBBox (const Expression &left, const Expression &right)=0
 Visits a bbox expression. More...
 
virtual void visitEqual (const Expression &left, const Expression &right)=0
 Visits an 'equal' condition. More...
 
virtual void visitGt (const Expression &left, const Expression &right)=0
 Visits a 'greater than' condition. More...
 
virtual void visitGte (const Expression &left, const Expression &right)=0
 Visits a 'greater than or equal' condition. More...
 
virtual void visitLike (const std::string &propertyPath, const std::string &pattern, bool matchCase, char wildCard, char singleChar, char escapeChar)=0
 Visits a like expression. More...
 
virtual void visitLiteral (const ExpressionValue &value)=0
 Visits a 'literal' value. More...
 
virtual void visitLt (const Expression &left, const Expression &right)=0
 Visits a 'less than' condition. More...
 
virtual void visitLte (const Expression &left, const Expression &right)=0
 Visits a 'less than or equal' condition. More...
 
virtual void visitNot (const Expression &condition)=0
 Visits a logical 'not' operation. More...
 
virtual void visitNotEqual (const Expression &left, const Expression &right)=0
 Visits a 'not equal' condition. More...
 
virtual void visitOr (const std::vector< Expression > &conditions)=0
 Visits a logical or operation. More...
 
virtual void visitValueReference (const std::string &propertyPath)=0
 Visits a reference to a property. More...
 

Detailed Description

Expression visitor interface that allows traversal of an Expression or a Condition.

The responsibility for the traversal algorithm is within the visitor. Have a look at Expressions and Conditions section for an example.

Constructor & Destructor Documentation

◆ ~IExpressionVisitor()

virtual luciad::IExpressionVisitor::~IExpressionVisitor ( )
virtualdefault

Member Function Documentation

◆ visitAnd()

virtual void luciad::IExpressionVisitor::visitAnd ( const std::vector< Expression > &  conditions)
pure virtual

Visits a logical and operation.

Parameters
conditionsthe list of conditions.
See also
ExpressionFactory::andOp

◆ visitBBox() [1/2]

virtual void luciad::IExpressionVisitor::visitBBox ( const Expression expression)
pure virtual

Visits a bbox expression.

Parameters
expressionexpression that evaluates to a bounding box.
See also
ExpressionFactory::bbox(Expression)

◆ visitBBox() [2/2]

virtual void luciad::IExpressionVisitor::visitBBox ( const Expression left,
const Expression right 
)
pure virtual

Visits a bbox expression.

Parameters
leftthe left expression.
rightthe right expression.
See also
ExpressionFactory::bbox(Expression,Expression)

◆ visitEqual()

virtual void luciad::IExpressionVisitor::visitEqual ( const Expression left,
const Expression right 
)
pure virtual

Visits an 'equal' condition.

Parameters
leftthe left expression.
rightthe right expression.
See also
ExpressionFactory::equal

◆ visitGt()

virtual void luciad::IExpressionVisitor::visitGt ( const Expression left,
const Expression right 
)
pure virtual

Visits a 'greater than' condition.

Parameters
leftthe left expression.
rightthe right expression.
See also
ExpressionFactory::gt

◆ visitGte()

virtual void luciad::IExpressionVisitor::visitGte ( const Expression left,
const Expression right 
)
pure virtual

Visits a 'greater than or equal' condition.

Parameters
leftthe left expression.
rightthe right expression.
See also
ExpressionFactory::gte

◆ visitLike()

virtual void luciad::IExpressionVisitor::visitLike ( const std::string &  propertyPath,
const std::string &  pattern,
bool  matchCase,
char  wildCard,
char  singleChar,
char  escapeChar 
)
pure virtual

Visits a like expression.

Parameters
propertyPathPath for the property whose value needs to be retrieved.
patternThe pattern to match.
matchCaseWhether to match case sensitive or case insensitive.
wildCardThe character used as wild card to match zero or more characters.
singleCharThe character used as single character to match exactly one character.
escapeCharThe character used to escape the meaning of the wildCard, singleChar and escapeChar itself.
Since
2023.1
See also
ExpressionFactory::like

◆ visitLiteral()

virtual void luciad::IExpressionVisitor::visitLiteral ( const ExpressionValue value)
pure virtual

Visits a 'literal' value.

Parameters
valuethe literal value.
See also
ExpressionFactory::literal

◆ visitLt()

virtual void luciad::IExpressionVisitor::visitLt ( const Expression left,
const Expression right 
)
pure virtual

Visits a 'less than' condition.

Parameters
leftthe left expression.
rightthe right expression.
See also
ExpressionFactory::lt

◆ visitLte()

virtual void luciad::IExpressionVisitor::visitLte ( const Expression left,
const Expression right 
)
pure virtual

Visits a 'less than or equal' condition.

Parameters
leftthe left expression.
rightthe right expression.
See also
ExpressionFactory::lte

◆ visitNot()

virtual void luciad::IExpressionVisitor::visitNot ( const Expression condition)
pure virtual

Visits a logical 'not' operation.

Parameters
conditionthe condition that is inverted.
See also
ExpressionFactory::notOp

◆ visitNotEqual()

virtual void luciad::IExpressionVisitor::visitNotEqual ( const Expression left,
const Expression right 
)
pure virtual

Visits a 'not equal' condition.

Parameters
leftthe left expression.
rightthe right expression.
See also
ExpressionFactory::notEqual

◆ visitOr()

virtual void luciad::IExpressionVisitor::visitOr ( const std::vector< Expression > &  conditions)
pure virtual

Visits a logical or operation.

Parameters
conditionsthe list of conditions.
See also
ExpressionFactory::orOp

◆ visitValueReference()

virtual void luciad::IExpressionVisitor::visitValueReference ( const std::string &  propertyPath)
pure virtual

Visits a reference to a property.

Parameters
propertyPaththe path to the property.
See also
ExpressionFactory::valueReference