# Package org.apache.calcite.avatica.util

Avatica utilities.

See: Description

Interface Summary
AbstractCursor.Getter: Gets a value from a particular field of the current record of this cursor.
ArrayImpl.Factory: Factory that can create a ResultSet or Array based on a stream of values.
Cursor: Interface to an iteration that is similar to, and can easily support, a JDBC `ResultSet`, but is simpler to implement.
Cursor.Accessor: Accessor of a column value.
StructImpl.Factory: Factory that can create a result set based on a list of values.

Class Summary
AbstractCursor: Base class for implementing a cursor.
AbstractCursor.AccessorImpl: Implementation of `Cursor.Accessor`.
AbstractCursor.ApproximateNumericAccessor: Accessor of values that are `Double` or null.
AbstractCursor.ArrayAccessor: Accessor that assumes that the underlying value is an ARRAY; corresponds to `Types.ARRAY`.
AbstractCursor.BigDecimalAccessor: Accessor that assumes that the underlying value is a `BigDecimal`; corresponds to `Types.DECIMAL`.
AbstractCursor.BigNumberAccessor: Accessor of exact numeric values.
AbstractCursor.BinaryAccessor: Accessor that assumes that the underlying value is an array of `ByteString` values; corresponds to `Types.BINARY` and `Types.VARBINARY`.
AbstractCursor.BinaryFromStringAccessor: Accessor that assumes that the underlying value is a `String`, encoding `Types.BINARY` and `Types.VARBINARY` values in Base64 format.
AbstractCursor.BooleanAccessor: Accessor that assumes that the underlying value is a `Boolean`; corresponds to `Types.BOOLEAN`.
AbstractCursor.ByteAccessor: Accessor that assumes that the underlying value is a `Byte`; corresponds to `Types.TINYINT`.
AbstractCursor.DateAccessor: Accessor that assumes that the underlying value is a DATE, represented as a java.sql.Date; corresponds to `Types.DATE`.
AbstractCursor.DateFromNumberAccessor: Accessor that assumes that the underlying value is a DATE, in its default representation `int`; corresponds to `Types.DATE`.
AbstractCursor.DoubleAccessor: Accessor that assumes that the underlying value is a `Double`; corresponds to `Types.DOUBLE`.
AbstractCursor.ExactNumericAccessor: Accessor of exact numeric values.
AbstractCursor.FixedStringAccessor: Accessor that assumes that the underlying value is a `String`; corresponds to `Types.CHAR`.
AbstractCursor.FloatAccessor: Accessor that assumes that the underlying value is a `Float`; corresponds to `Types.FLOAT`.
AbstractCursor.IntAccessor: Accessor that assumes that the underlying value is an `Integer`; corresponds to `Types.INTEGER`.
AbstractCursor.IntervalDayTimeAccessor: Accessor that assumes that the underlying value is a `long`; corresponds to `Types.OTHER`.
AbstractCursor.IntervalYearMonthAccessor: Accessor that assumes that the underlying value is a `int`; corresponds to `Types.OTHER`.
AbstractCursor.LongAccessor: Accessor that assumes that the underlying value is a `Long`; corresponds to `Types.BIGINT`.
AbstractCursor.NumberAccessor: Accessor that assumes that the underlying value is a `Number`; corresponds to `Types.NUMERIC`.
AbstractCursor.ObjectAccessor: Accessor that assumes that the underlying value is an OBJECT; corresponds to `Types.JAVA_OBJECT`.
AbstractCursor.ShortAccessor: Accessor that assumes that the underlying value is a `Short`; corresponds to `Types.SMALLINT`.
AbstractCursor.StringAccessor: Accessor that assumes that the underlying value is a `String`; corresponds to `Types.CHAR` and `Types.VARCHAR`.
AbstractCursor.StringFromCharAccessor: Accessor that assumes that the underlying value is a `String`; corresponds to `Types.CHAR`.
AbstractCursor.StructAccessor: Accessor that assumes that the underlying value is a STRUCT; corresponds to `Types.STRUCT`.
AbstractCursor.TimeAccessor: Accessor that assumes that the underlying value is a TIME, represented as a java.sql.Time; corresponds to `Types.TIME`.
AbstractCursor.TimeFromNumberAccessor: Accessor that assumes that the underlying value is a Time, in its default representation `int`; corresponds to `Types.TIME`.
AbstractCursor.TimestampAccessor: Accessor that assumes that the underlying value is a TIMESTAMP, represented as a java.sql.Timestamp; corresponds to `Types.TIMESTAMP`.
AbstractCursor.TimestampFromNumberAccessor: Accessor that assumes that the underlying value is a TIMESTAMP, in its default representation `long`; corresponds to `Types.TIMESTAMP`.
AbstractCursor.TimestampFromUtilDateAccessor: Accessor that assumes that the underlying value is a TIMESTAMP, represented as a java.util.Date; corresponds to `Types.TIMESTAMP`.
ArrayFactoryImpl: Implementation of `ArrayImpl.Factory`.
ArrayImpl: Implementation of JDBC `Array`.
ArrayIteratorCursor: Implementation of `Cursor` on top of an `Iterator` that returns an array of `Object` for each row.
Base64: Encodes and decodes to and from Base64 notation.
Base64.InputStream: A `Base64.InputStream` will read data from another `java.io.InputStream`, given in the constructor, and encode/decode to/from Base64 notation on the fly.
Base64.OutputStream: A `Base64.OutputStream` will write data to another `java.io.OutputStream`, given in the constructor, and encode/decode to/from Base64 notation on the fly.
ByteString: Collection of bytes.
DateTimeUtils: Utility functions for datetime types: date, time, timestamp.
DateTimeUtils.PrecisionTime: Helper class for `DateTimeUtils.parsePrecisionDateTimeLiteral(java.lang.String, java.lang.String, java.util.TimeZone)`
FilteredConstants: A class which, at build time, will have build-specific variables substituted into it.
IteratorCursor<E>: Implementation of `Cursor` on top of an `Iterator` that returns a record for each row.
ListIteratorCursor: Implementation of `Cursor` on top of an `Iterator` that returns a `List` for each row.
MapIteratorCursor: Implementation of `Cursor` on top of an `Iterator` that returns a `Map` for each row.
PositionedCursor<T>: Abstract implementation of `Cursor` that caches its current row.
RecordIteratorCursor<E>: Implementation of `Cursor` on top of an `Iterator` that returns a record for each row.
Spacer: Efficiently writes strings of spaces.
Spaces: Utilities for creating strings of spaces.
Spaces.SpaceList: List whose `i`th entry is a string consisting of `i` spaces.
Spaces.SpaceString: A string of spaces.
StructImpl: Implementation of JDBC `Struct`.
TimeUnitRange.Pair<E>: Immutable pair of values of the same type.
Unsafe: Contains methods that call JDK methods that the forbidden APIs checker does not approve of.
UnsynchronizedBuffer: A utility class for reading and writing bytes to byte buffers without synchronization.

Enum Summary
Casing: Policy for converting case of identifiers before storing them.
IteratorCursor.Position: Are we positioned on a valid row?
Quoting: Syntax for quoting identifiers in SQL statements.
TimeUnit: Enumeration of time units used to construct an interval.
TimeUnitRange: A range of time units.

Annotation Types Summary
PackageMarker: This is a dummy annotation that forces javac to produce output for otherwise empty package-info.java.

## Package org.apache.calcite.avatica.util Description

Avatica utilities.