com.holonplatform.core

## Interface ExpressionResolver.ExpressionResolverHandler

- All Superinterfaces:
    ExpressionResolver.ExpressionResolverProvider
  All Known Subinterfaces:
    ExpressionResolver.ResolutionContext, ExpressionResolverRegistry
  Enclosing interface:
    ExpressionResolver<E extends Expression,R extends Expression>

      public static interface ExpressionResolver.ExpressionResolverHandler
      extends ExpressionResolver.ExpressionResolverProvider

  Handler to perform `Expression` resolution using a set of registered `ExpressionResolver`s.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `<E extends Expression,R extends Expression> Optional<R>` | `resolve(E expression, Class<R> resolutionType, ExpressionResolver.ResolutionContext context)` Try to resolve given `expression` to obtain an `Expression` of the specified `resolutionType`, using the suitable `ExpressionResolver`s among all available resolvers for given expression and resolution type.

    - ### Methods inherited from interface com.holonplatform.core.ExpressionResolver.ExpressionResolverProvider

      `getExpressionResolvers`

- - ### Method Detail

    - #### resolve

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

      Try to resolve given `expression` to obtain an `Expression` of the specified `resolutionType`, using the suitable `ExpressionResolver`s among all available resolvers for given expression and resolution type.

      `ExpressionResolver`s invokation order is defined relying on `Priority` annotation on resolvers class, if available.

      Type Parameters:
        `E` - Expression type to resolve
        `R` - Resolved expression type
      Parameters:
        `expression` - Expression to resolve (not null)
        `resolutionType` - Type of the expression to obtain from resolvers (not null)
        `context` - Resolution context
      Returns:
        Optional resolved expression, empty if none of the suitable `ExpressionResolver`s, if any, resolved the expression
      Throws:
        `Expression.InvalidExpressionException` - If an error occurred during expression resolution

Copyright © 2019 The Holon Platform. All rights reserved.