com.holonplatform.core

## Interface Expression.ExpressionResolverFunction<E extends Expression,R extends Expression>

- Type Parameters:
    `E` - Expression type
    `R` - Resolved expression type
  All Known Subinterfaces:
    DataTarget.DataTargetResolver<T>, ExpressionResolver<E,R>, QueryFilter.QueryFilterResolver<T>, QuerySort.QuerySortResolver<T>
  Enclosing interface:
    Expression
  Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

      @FunctionalInterface
      public static interface Expression.ExpressionResolverFunction<E extends Expression,R extends Expression>

  A function to translate an `Expression` into another `Expression` type.
  See Also:
    `ExpressionResolver`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Optional<R>` | `resolve(E expression, ExpressionResolver.ResolutionContext context)` Try to resolve given `expression`.

- - ### Method Detail

    - #### resolve

          Optional<R> resolve(E expression,
                              ExpressionResolver.ResolutionContext context)
                       throws Expression.InvalidExpressionException

      Try to resolve given `expression`. If the resolver is not able to resolve given expression type, an empty Optional must be returned and the expression resolution engine should delegate the resolution to the next resolver, if available.

      Concrete resolution environments could provide a more specialized `ExpressionResolver.ResolutionContext` interface.

      Parameters:
        `expression` - Expression to resolve
        `context` - Resolution context
      Returns:
        Resolved expression, or an empty Optional if this resolver is not able to resolve given expression
      Throws:
        `Expression.InvalidExpressionException` - An error occurred during expression resolution

Copyright © 2017 The Holon Platform. All rights reserved.