Interface SelectQuery.ExecutionContext<E>

Type Parameters:
E - the type of value yielded by this execution context, as determined by which Select factory method was used to begin the query. For example, Select.from(String) yields GenericValue and Select.id() yields Long.
All Known Implementing Classes:
SelectQueryImpl.ExecutionContextImpl
Enclosing interface:
SelectQuery<E>

public static interface SelectQuery.ExecutionContext<E>
The parser context for entity engine Select queries that is available after calling Select.ExecutableContext.runWith(EntityEngine) or Select.ExecutableContext.runWith(com.atlassian.jira.ofbiz.OfBizDelegator).

The methods available through the execution context specify how the selected entities should be returned to the caller. For example, asList() will return a list of values, or count() will return only a count of them.

  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the selected values in a list.
    <R> List<R>
    asList(Function<E,R> mappingFunction)
    Returns the selected values in a list with the mapping function applied to each of them.
    <K, V> Map<K,V>
    asMap(Function<E,K> keyMapper, Function<E,V> valueMapper)
    Returns the selected values in a map with the mapping functions applies to each of them.
    <R> R
    Apply an EntityListConsumer to the returned results.
    long
    Returns a count of matching items.
    void
    forEach(Consumer<E> action)
    Performs the given action for each entity returned by the query.
    Returns the single Entity that is the result of this query.
    void
    visitWith(Visitor<E> visitor)
    Visits each entity returned by the query.
  • Method Details

    • asList

      @Nonnull List<E> asList()
      Returns the selected values in a list.
      Returns:
      the selected values in a list.
    • asList

      @Nonnull <R> List<R> asList(@Nonnull Function<E,R> mappingFunction)
      Returns the selected values in a list with the mapping function applied to each of them. For example, if mappingFunction is a Function&lt;GenericValue,String&gt;, then each value is returned as the String produced by the function instead of the GenericValue itself.
      Type Parameters:
      R - the type of value returned by the mapping function
      Returns:
      the selected values as a list of the yielded values.
    • asMap

      @Nonnull <K, V> Map<K,V> asMap(@Nonnull Function<E,K> keyMapper, @Nonnull Function<E,V> valueMapper)
      Returns the selected values in a map with the mapping functions applies to each of them. For example, if keyMapper is a Function&lt;GenericValue,Long&gt;, and valueMapper is a Function&lt;GenericValue,String&gt;, then the returned map is of type Map&lt;Long,String&gt;. If the same key is returned by the keyMapper more than once, the last value wins. The functions are permitted to return null.
      Type Parameters:
      K - the inferred key type for the returned map
      V - the inferred value type for the returned map
      Parameters:
      keyMapper - the function that maps the queries values to the returned map's keys
      valueMapper - the function that maps the queries values to the returned map's values
      Returns:
      the map produced by the query
    • singleValue

      @Nullable E singleValue()
      Returns the single Entity that is the result of this query.

      Will return null if no rows were returned by the DB query.

      Returns:
      the single matching value, or null if no match is found.
      Throws:
      IllegalStateException - if more than one row is found.
    • consumeWith

      <R> R consumeWith(@Nonnull EntityListConsumer<E,R> consumer)
      Apply an EntityListConsumer to the returned results.

      This is equivalent to calling visitWith(Visitor), except that the entity list consumer can return a value.

      Type Parameters:
      R - the return value of the consumer
      Parameters:
      consumer - the entity list consumer that will consume the query results
      Returns:
      the result returned by the consumer's EntityListConsumer.result() method.
    • visitWith

      void visitWith(@Nonnull Visitor<E> visitor)
      Visits each entity returned by the query.
      Parameters:
      visitor - the visitor to call with each entity that the query returns
      See Also:
    • forEach

      void forEach(@Nonnull Consumer<E> action)
      Performs the given action for each entity returned by the query. This is morally equivalent to visitWith(Visitor), but is more consistent with the naming conventions of the Java 8 streaming interfaces.
      Parameters:
      action - the action to be performed
      See Also:
    • count

      long count()
      Returns a count of matching items. Note that this does not go through the the entityName + "Count" pseudo-view stuff in the entity model, but rather generates a count function directly in the query that it executes, so you should be able to use it with arbitrary entities.
      Returns:
      count of matching items
      Since:
      6.1