Package freemarker.template.expression

The mechanics of FM-Classic expressions are implemented in this package.

See:
          Description

Interface Summary
Binary An interface for binary operators.
Expression An Expression can return a TemplateModel value.
ExpressionElement An expression element is a tagged interface that represents an expression token.
Operator Interface that represents an operator expression.
Parenthesis A tagged interface representing parenthesized expressions.
Unary An interface for unary operators.
Variable An interface for expressions that get their values from the data model.
 

Class Summary
AbstractBinary Abstract class that implements most of the surrounding machinery needed for binary expressions.
And Performs a logical "and" operation on two template models.
BooleanLiteral Represents a boolean literal in a FM-Classic template.
CloseParen A null class that represents a closed parenthesis.
Constant Represents a constant value within an expression.
Divide A division operator.
Dot The dot operator.
DynamicKeyName A unary operator that uses the string value of an expression as a hash key.
Equals Performs an equality test on two template models.
ExpressionBuilder A TemplateParser can use this class's static ExpressionBuilder.build(java.util.List) method to build a complete Expression or sub-expression from a List of ExpressionElements.
ExpressionUtils Utility methods for evaluating expressions.
GreaterThan A greater-than operator.
GreaterThanOrEquals A greater-than-or-equals operator.
HashLiteral Represents a literal Hash model in a FM-Classic template.
Identifier An identifer in a variable.
LessThan A less-than operator.
LessThanOrEquals A less-than-or-equals operator.
ListLiteral Represents a literal List model in a FM-Classic template.
ListRange An expression that represents a indexModel of list values.
MethodCall A unary operator that calls a TemplateMethodModel.
Minus A subtraction operator.
Modulo A modulus operator.
Multiply A multiplication operator.
Not Performs a logical "not" operation on a given template model.
NotEquals Performs an inequality test on two template models.
NumberLiteral Represents a number literal in a FM-Classic template.
OpenParen A null class that represents an open parenthesis.
Or Performs a logical "or" operation on two template models.
Plus An addition operator.
StringLiteral Represents a String literal in a FM-Classic template.
 

Package freemarker.template.expression Description

The mechanics of FM-Classic expressions are implemented in this package. Expressions are represented as a syntax tree, of which each node implements the Expression interface. Expressions can then be divided up in two ways:

Runtime expression elements are a subset of the parser symbols. The special cases are the symbols generated for parenthesized operators. These are emitted by the parser in order for the ExpressionBuilder class to generate the expression tree with the correct hierarchy.

Other expression elements are either binary or unary operators, indicating how they should be associated with the operators around them. Operator precedence is handled by the ExpressionBuilder when expressions are constructed.