org.modeshape.jcr.query

## Class JcrQueryResult

- java.lang.Object
- - org.modeshape.jcr.query.JcrQueryResult

- All Implemented Interfaces:
    AutoCloseable, QueryResult
  Direct Known Subclasses:
    JcrSqlQueryResult, XPathQueryResult

      @NotThreadSafe
      public class JcrQueryResult
      extends Object
      implements QueryResult

  The results of a query. This is not thread-safe because it relies upon JcrSession, which is not thread-safe. Also, although the results of a query never change, the objects returned by the iterators may vary if the session information changes.
  See Also:
    `XPathQueryResult`, `JcrSqlQueryResult`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `JcrQueryResult.AbstractRow`
    `protected static class` | `JcrQueryResult.MultiSelectorQueryResultRow`
    `protected static class` | `JcrQueryResult.QueryResultIterator` The `NodeIterator` implementation returned by the `JcrQueryResult`.
    `protected static class` | `JcrQueryResult.QueryResultNodeIterator` The `NodeIterator` implementation returned by the `JcrQueryResult`.
    `protected static class` | `JcrQueryResult.QueryResultRowIterator` The `RowIterator` implementation returned by the `JcrQueryResult`.
    `protected static class` | `JcrQueryResult.SingleSelectorQueryResultRow`
    `protected static class` | `JcrQueryResult.SingleSelectorQueryResultRowIterator` The `RowIterator` implementation returned by the `JcrQueryResult`.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected JcrQueryContext` | `context`
    `protected String` | `queryStatement`
    `protected QueryResults` | `results`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `JcrQueryResult(JcrQueryContext context, String query, QueryResults results, boolean restartable, int numRowsInMemory)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close and release all resources associated with these results.
    `protected int` | `computeDefaultSelectorIndex()`
    `protected List<String>` | `getColumnNameList()`
    `String[]` | `getColumnNames()`
    `protected List<String>` | `getColumnTypeList()`
    `String[]` | `getColumnTypes()` Returns an array of the `PropertyType` name for each of the columns in this result.
    `NodeIterator` | `getNodes()`
    `String` | `getPlan()` Get a description of ModeShape's plan for executing this query.
    `RowIterator` | `getRows()`
    `String[]` | `getSelectorNames()`
    `Collection<String>` | `getWarnings()` Get any warnings that might describe potential problems with this query.
    `boolean` | `isEmpty()` Return whether the number of rows in the results is 0.
    `protected NodeSequence` | `sequence()`
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### context

          protected final JcrQueryContext context

    - #### results

          protected final QueryResults results

    - #### queryStatement

          protected final String queryStatement

  - ### Constructor Detail

    - #### JcrQueryResult

          protected JcrQueryResult(JcrQueryContext context,
                        String query,
                        QueryResults results,
                        boolean restartable,
                        int numRowsInMemory)

  - ### Method Detail

    - #### getColumnNameList

          protected List<String> getColumnNameList()

    - #### getColumnTypeList

          protected List<String> getColumnTypeList()

    - #### sequence

          protected final NodeSequence sequence()

    - #### getColumnNames

          public String[] getColumnNames()

      Specified by:
        `getColumnNames` in interface `QueryResult`

    - #### getColumnTypes

          public String[] getColumnTypes()

      Description copied from interface: `QueryResult`
      Returns an array of the `PropertyType` name for each of the columns in this result.
      Returns:
        the array of property type names; never null, never has null elements, and the size always matches `QueryResult.getColumnNames()`.

    - #### getSelectorNames

          public String[] getSelectorNames()

      Specified by:
        `getSelectorNames` in interface `QueryResult`

    - #### getNodes

          public NodeIterator getNodes()
                                throws RepositoryException

      Specified by:
        `getNodes` in interface `QueryResult`
      Throws:
        `RepositoryException`

    - #### computeDefaultSelectorIndex

          protected int computeDefaultSelectorIndex()

    - #### getRows

          public RowIterator getRows()
                              throws RepositoryException

      Specified by:
        `getRows` in interface `QueryResult`
      Throws:
        `RepositoryException`

    - #### getPlan

          public String getPlan()

      Description copied from interface: `QueryResult`
      Get a description of ModeShape's plan for executing this query. The plan uses relational algebra and operations, and may be used to get insight into what operations are performed when executing the query.

      Note that as of ModeShape 3.1, the plan is always captured and available, though this may change in future versions. This means that clients should be written to never expect a non-null String response from this method.

      Returns:
        the string representation of the query plan as executed by the query; may be null if the query plan was not captured for the query (though currently it is always captured)

    - #### getWarnings

          public Collection<String> getWarnings()

      Description copied from interface: `QueryResult`
      Get any warnings that might describe potential problems with this query.

      Note that a query that has warnings is not necessarily incorrect or potentially wrong - because of residual properties, ModeShape may produce warnings for queries that are perfectly valid.

      However, if a query does not give the expected results (during development), check the warnings to see if ModeShape can suggest specific things to look at. For example, a warnings might suggest that a column might be resolved on a different selector, or that a column might have been misspelled.

      Returns:
        the collection of warnings; never null be empty when there are no warnings

    - #### isEmpty

          public boolean isEmpty()

      Description copied from interface: `QueryResult`
      Return whether the number of rows in the results is 0. This is often significantly more efficient and more accurate than `getting the size` of the `rows` or `nodes`.
      Returns:
        true if this result set is empty, or false if there is at least one row.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### close

          public void close()

      Description copied from interface: `QueryResult`
      Close and release all resources associated with these results. This method is optional but recommended, since it allows client applications full control over when such resources can be reclaimed. If this method is not called, then the results' resources will be reclaimed when the session's `Session.logout()` method is called.
      Specified by:
        `close` in interface `AutoCloseable`

Copyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.