org.modeshape.jdbc

## Class JcrResultSetMetaData

- java.lang.Object
- - org.modeshape.jdbc.JcrResultSetMetaData

- All Implemented Interfaces:
    ResultSetMetaData, Wrapper

      public class JcrResultSetMetaData
      extends Object
      implements ResultSetMetaData

  This driver's `ResultSetMetaData` implementation that obtains the metadata information from the JCR query result and (where possible) the column's corresponding property definitions.

- - ### Field Summary

    - ### Fields inherited from interface java.sql.ResultSetMetaData

      `columnNoNulls, columnNullable, columnNullableUnknown`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `JcrResultSetMetaData(JcrConnection connection, QueryResult results)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getCatalogName(int column)` All columns come from the same repository (i.e., catalog).
    `String` | `getColumnClassName(int column)`
    `int` | `getColumnCount()`
    `int` | `getColumnDisplaySize(int column)` This method returns the nominal display size based upon the column's type.
    `String` | `getColumnLabel(int column)`
    `String` | `getColumnName(int column)`
    `int` | `getColumnType(int column)`
    `String` | `getColumnTypeName(int column)`
    `int` | `getPrecision(int column)` This method always returns the nominal display size for the type.
    `int` | `getScale(int column)` This method returns the number of digits behind the decimal point, which is assumed to be 3 if the type is `PropertyType.DOUBLE` or 0 otherwise.
    `String` | `getSchemaName(int column)` This method always returns the workspace name.
    `String` | `getTableName(int column)`
    `boolean` | `isAutoIncrement(int column)` This method always returns false, since this JCR property types don't represent auto-incremented values.
    `boolean` | `isCaseSensitive(int column)`
    `boolean` | `isCurrency(int column)` This method always returns false, since no JCR property types (directly) represent currency.
    `boolean` | `isDefinitelyWritable(int column)` This method always returns false, since this JDBC driver does not support writes.
    `int` | `isNullable(int column)`
    `boolean` | `isReadOnly(int column)` Even though the value may be writable in the JCR repository, this JDBC driver does not support writes.
    `boolean` | `isSearchable(int column)` In JCR-SQL2, every property can be used in a WHERE clause.
    `boolean` | `isSigned(int column)` This method returns true if the column is a `PropertyType.DOUBLE`, `PropertyType.LONG` or `PropertyType.DATE`.
    `boolean` | `isWrapperFor(Class<?> iface)`
    `boolean` | `isWritable(int column)` Even though the value may be writable in the JCR repository, this JDBC driver does not support writes.
    `<T> T` | `unwrap(Class<T> iface)`

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

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

- - ### Constructor Detail

    - #### JcrResultSetMetaData

          protected JcrResultSetMetaData(JcrConnection connection,
                              QueryResult results)

  - ### Method Detail

    - #### getCatalogName

          public String getCatalogName(int column)

      All columns come from the same repository (i.e., catalog).

      Specified by:
        `getCatalogName` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.getCatalogName(int)`

    - #### getColumnClassName

          public String getColumnClassName(int column)

      Specified by:
        `getColumnClassName` in interface `ResultSetMetaData`

    - #### getColumnCount

          public int getColumnCount()
                             throws SQLException

      Specified by:
        `getColumnCount` in interface `ResultSetMetaData`
      Throws:
        `SQLException`

    - #### getColumnDisplaySize

          public int getColumnDisplaySize(int column)

      This method returns the nominal display size based upon the column's type. Therefore, the value may not reflect the optimal display size for any given value.

      Specified by:
        `getColumnDisplaySize` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.getColumnDisplaySize(int)`

    - #### getColumnLabel

          public String getColumnLabel(int column)
                                throws SQLException

      Specified by:
        `getColumnLabel` in interface `ResultSetMetaData`
      Throws:
        `SQLException`

    - #### getColumnName

          public String getColumnName(int column)
                               throws SQLException

      Specified by:
        `getColumnName` in interface `ResultSetMetaData`
      Throws:
        `SQLException`

    - #### getColumnType

          public int getColumnType(int column)

      Specified by:
        `getColumnType` in interface `ResultSetMetaData`

    - #### getColumnTypeName

          public String getColumnTypeName(int column)

      Specified by:
        `getColumnTypeName` in interface `ResultSetMetaData`

    - #### getPrecision

          public int getPrecision(int column)

      This method always returns the nominal display size for the type.

      Specified by:
        `getPrecision` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.getPrecision(int)`

    - #### getScale

          public int getScale(int column)

      This method returns the number of digits behind the decimal point, which is assumed to be 3 if the type is `PropertyType.DOUBLE` or 0 otherwise.

      Specified by:
        `getScale` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.getScale(int)`

    - #### getSchemaName

          public String getSchemaName(int column)

      This method always returns the workspace name.

      Specified by:
        `getSchemaName` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.getSchemaName(int)`

    - #### getTableName

          public String getTableName(int column)
                              throws SQLException

      Specified by:
        `getTableName` in interface `ResultSetMetaData`
      Throws:
        `SQLException`

    - #### isAutoIncrement

          public boolean isAutoIncrement(int column)

      This method always returns false, since this JCR property types don't represent auto-incremented values.

      Specified by:
        `isAutoIncrement` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.isAutoIncrement(int)`

    - #### isCaseSensitive

          public boolean isCaseSensitive(int column)

      Specified by:
        `isCaseSensitive` in interface `ResultSetMetaData`

    - #### isCurrency

          public boolean isCurrency(int column)

      This method always returns false, since no JCR property types (directly) represent currency.

      Specified by:
        `isCurrency` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.isCurrency(int)`

    - #### isDefinitelyWritable

          public boolean isDefinitelyWritable(int column)

      This method always returns false, since this JDBC driver does not support writes.

      Specified by:
        `isDefinitelyWritable` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.isDefinitelyWritable(int)`

    - #### isNullable

          public int isNullable(int column)
                         throws SQLException

      Specified by:
        `isNullable` in interface `ResultSetMetaData`
      Throws:
        `SQLException`

    - #### isReadOnly

          public boolean isReadOnly(int column)

      Even though the value may be writable in the JCR repository, this JDBC driver does not support writes. Therefore, this method always returns true.

      Specified by:
        `isReadOnly` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.isReadOnly(int)`

    - #### isSearchable

          public boolean isSearchable(int column)

      In JCR-SQL2, every property can be used in a WHERE clause. Therefore, this method always returns true.

      Specified by:
        `isSearchable` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.isSearchable(int)`

    - #### isSigned

          public boolean isSigned(int column)

      This method returns true if the column is a `PropertyType.DOUBLE`, `PropertyType.LONG` or `PropertyType.DATE`.

      Specified by:
        `isSigned` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.isSigned(int)`

    - #### isWritable

          public boolean isWritable(int column)

      Even though the value may be writable in the JCR repository, this JDBC driver does not support writes. Therefore, this method always returns false.

      Specified by:
        `isWritable` in interface `ResultSetMetaData`
      See Also:
        `ResultSetMetaData.isWritable(int)`

    - #### isWrapperFor

          public boolean isWrapperFor(Class<?> iface)

      Specified by:
        `isWrapperFor` in interface `Wrapper`

    - #### unwrap

          public <T> T unwrap(Class<T> iface)
                   throws SQLException

      Specified by:
        `unwrap` in interface `Wrapper`
      Throws:
        `SQLException`

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