SelectResults (Apache Geode 2.0.2)
Description: declaration: package: org.apache.geode.cache.query, interface: SelectResults

Package org.apache.geode.cache.query

# Interface SelectResults<E>

All Superinterfaces:
  `Collection<E>`, `Iterable<E>`

All Known Subinterfaces:
  `CqResults<E>`

public interface SelectResults<E> extends Collection<E>
Contains the results of a executing a `SELECT` expression within a query. A `SELECT` expression results in `SelectResults` that contain instances of `Struct` if: (a) there is more than one projection in the projection attributes, or (b) if the projection is `*` and there is more than one collection specified in the `FROM` clause.

Otherwise, a `SELECT` expression over a collection of domain objects results in `SelectResults` that contain domain objects, i.e. instances of domain classes such as `String` or `Address`.

     QueryService qs = cacheView.getQueryService();

     String select = "SELECT DISTINCT * FROM /root/employees " + "WHERE salary > 50000";
     Query query = qs.newQuery(select);
     SelectResults results = query.execute();

     for (Iterator iter = results.iterator(); iter.hasNext();) {
       Employee emp = (Employee) iter.next();
       System.out.println("Highly compensated: " + emp);
     }

     select = "SELECT DISTINCT age, address.zipCode FROM /root/employees " + "WHERE salary > 50000";
     query = qs.newQuery(select);
     results = query.execute();

     for (Iterator iter = results.iterator(); iter.hasNext();) {
       Struct struct = (Struct) iter.next();
       int age = ((Integer) struct.get("age")).intValue();
       String zipCode = (String) struct.get("zipCode");
       System.out.println(age + " -> " + zipCode);
     }

Since:
  GemFire 4.0
See Also:
  - `Query.execute()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<E>`
  `asList()`
  Returns this `SelectedResults` as a `java.util.List`.
  `Set<E>`
  `asSet()`
  Returns this `SelectResults` as a `java.util.Set`.
  `CollectionType`
  `getCollectionType()`
  Return the ObjectType for the type of collection this represents.
  `boolean`
  `isModifiable()`
  Return whether this collection is modifiable.
  `int`
  `occurrences(E element)`
  Return the number of times element occurs in this collection, that is the number of duplicates `element` has in this collection as defined by the `equals` method.
  `void`
  `setElementType(ObjectType elementType)`
  Specify a new elementType, overriding any existing known elementType.

  ### Methods inherited from interface java.util.Collection

  `add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArray`

  ### Methods inherited from interface java.lang.Iterable

  `forEach`

- ## Method Details

  - ### isModifiable

    boolean isModifiable()
    Return whether this collection is modifiable. The result of this method has no bearing on whether the elements in the collection themselves are modifiable.
    Returns:
      true if this collection is modifiable, false if not.

  - ### occurrences

    int occurrences(E element)
    Return the number of times element occurs in this collection, that is the number of duplicates `element` has in this collection as defined by the `equals` method. If `element` is not present in this collection, then 0 is returned.
    Parameters:
      `element` - the element
    Returns:
      the number of occurrences of element
    Since:
      GemFire 5.1

  - ### asSet

    Set<E> asSet()
    Returns this `SelectResults` as a `java.util.Set`. If this collection is distinct and unordered, then no copying is necessary. Otherwise, the contents of this collection will be copied into a new instance of java.util.HashSet.
    Returns:
      Is this collection as a `java.util.Set`?

  - ### asList

    List<E> asList()
    Returns this `SelectedResults` as a `java.util.List`. If this collection is ordered, then no copying is necessary. Otherwise, the contents of this collection will be copied into a new instance of java.util.ArrayList.
    Returns:
      this collection as a java.util.List

  - ### getCollectionType

    CollectionType getCollectionType()
    Return the ObjectType for the type of collection this represents.
    Returns:
      the CollectionType for the type of collection this represents

  - ### setElementType

    void setElementType(ObjectType elementType)
    Specify a new elementType, overriding any existing known elementType. This modifies the CollectionType for this object to be the same collection type but with the newly specified element type.
    Parameters:
      `elementType` - the new elementType