org.apache.geode.experimental.driver

## Interface Function<T>

- Type Parameters:
    `T` - Type of result returned from the function. May differ from the key and value types of any involved regions.
  All Known Implementing Classes:
    ProtobufFunction

      public interface Function<T>

  This interface represents from the client-side the execution of a function on the server-side.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<T>` | `executeOnGroup(java.lang.Object arguments, java.lang.String... groups)` Executes this function with the specified arguments on the specified groups.
    `java.util.List<T>` | `executeOnMember(java.lang.Object arguments, java.lang.String... members)` Executes this function with the specified arguments on the specified members.
    `java.util.List<T>` | `executeOnRegion(java.lang.Object arguments, java.lang.String regionName, java.lang.Object... keyFilters)` Executes this function with the specified arguments on the specified region.

- - ### Method Detail

    - #### executeOnRegion

          java.util.List<T> executeOnRegion(java.lang.Object arguments,
                                            java.lang.String regionName,
                                            java.lang.Object... keyFilters)
                                     throws java.io.IOException

      Executes this function with the specified arguments on the specified region. Keys may be optionally filtered.
      Parameters:
        `arguments` - Object encapsulating all the arguments to this execution of the function.
        `regionName` - Name of the region.
        `keyFilters` - Optional list of keys.
      Returns:
        Possibly empty list of results from the function.
      Throws:
        `java.io.IOException` - If an error occurred communicating with the distributed system.

    - #### executeOnMember

          java.util.List<T> executeOnMember(java.lang.Object arguments,
                                            java.lang.String... members)
                                     throws java.io.IOException

      Executes this function with the specified arguments on the specified members.
      Parameters:
        `arguments` - Object encapsulating all the arguments to this execution of the function.
        `members` - Optional list of member names.
      Returns:
        Possibly empty list of results from the function.
      Throws:
        `java.io.IOException` - If an error occurred communicating with the distributed system.

    - #### executeOnGroup

          java.util.List<T> executeOnGroup(java.lang.Object arguments,
                                           java.lang.String... groups)
                                    throws java.io.IOException

      Executes this function with the specified arguments on the specified groups.
      Parameters:
        `arguments` - Object encapsulating all the arguments to this execution of the function.
        `groups` - Optional list of group names.
      Returns:
        Possibly empty list of results from the function.
      Throws:
        `java.io.IOException` - If an error occurred communicating with the distributed system.