Class OrderByExpressionImpl

java.lang.Object
org.apache.olingo.odata2.core.uri.expression.OrderByExpressionImpl
All Implemented Interfaces:
CommonExpression, OrderByExpression, Visitable

public class OrderByExpressionImpl extends Object implements OrderByExpression
  • Constructor Details

    • OrderByExpressionImpl

      public OrderByExpressionImpl(String orderbyString)
  • Method Details

    • getExpressionString

      public String getExpressionString()
      Specified by:
      getExpressionString in interface OrderByExpression
      Returns:
      Returns the $filter expression string used to build the expression tree
    • getOrders

      public List<OrderExpression> getOrders()
      Specified by:
      getOrders in interface OrderByExpression
      Returns:
      Returns a ordered list of order expressions contained in the $orderby expression string

      For example: The orderby expression build from "$orderby=name asc, age desc" would contain to order expression.

    • getOrdersCount

      public int getOrdersCount()
      Specified by:
      getOrdersCount in interface OrderByExpression
      Returns:
      Returns the count of order expressions contained in the $orderby expression string
    • addOrder

      public void addOrder(OrderExpression orderNode)
    • getKind

      public ExpressionKind getKind()
      Specified by:
      getKind in interface CommonExpression
      Returns:
      Kind of this expression
      See Also:
    • getEdmType

      public EdmType getEdmType()
      Specified by:
      getEdmType in interface CommonExpression
      Returns:
      The return type of the value represented with this expression. For example the CommonExpression.getEdmType() method for an expression representing the "concat" method will return always "Edm.String".

      This type information is set while parsing the $filter or $orderby expressions and used to do a first validation of the expression. For calculating operators like "add, sub, mul" this type information is purely based on input and output types of the operator as defined in the OData specification. So for $filter=2 add 7 the CommonExpression.getEdmType() method of the binary expression will return Edm.Byte and not Edm.Int16 because the parser performs no real addition.

      However, the application may change this type while evaluating the expression tree.

    • setEdmType

      public CommonExpression setEdmType(EdmType edmType)
      Description copied from interface: CommonExpression
      Set the edmType of this expression node
      Specified by:
      setEdmType in interface CommonExpression
      Parameters:
      edmType - Type to be set
      Returns:
      A self reference for method chaining"
    • getUriLiteral

      public String getUriLiteral()
      Description copied from interface: CommonExpression
      Returns the URI literal which lead to the creation of this expression.
      Specified by:
      getUriLiteral in interface CommonExpression
      Returns:
      URI literal
    • accept

      Description copied from interface: Visitable
      Method Visitable.accept(ExpressionVisitor) is called when traversing the expression tree. This method is invoked on each expression used as node in an expression tree. The implementations should behave as follows:
    • Call accept on all sub nodes and store the returned Objects
    • Call the appropriate method on the ExpressionVisitor instance and provide the stored objects to that instance
    • Return the object which should be passed to the processing algorithm of the parent expression node

    • Specified by:
      accept in interface Visitable
      Parameters:
      visitor - Object ( implementing ExpressionVisitor) whose methods are called during traversing a expression node of the expression tree.
      Returns:
      Object which should be passed to the processing algorithm of the parent expression node
      Throws:
      ExceptionVisitExpression - Exception occurred the OData library while traversing the tree
      ODataApplicationException - Exception thrown by the application who implemented the visitor