org.h2.value
Class ValueArray

java.lang.Object
  extended by org.h2.value.Value
      extended by org.h2.value.ValueArray

public class ValueArray
extends Value

Implementation of the ARRAY data type.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.h2.value.Value
Value.ValueBlob, Value.ValueClob
 
Field Summary
 
Fields inherited from class org.h2.value.Value
ARRAY, BLOB, BOOLEAN, BYTE, BYTES, CLOB, DATE, DECIMAL, DOUBLE, FLOAT, INT, JAVA_OBJECT, LONG, NULL, RESULT_SET, SHORT, STRING, STRING_FIXED, STRING_IGNORECASE, TIME, TIMESTAMP, TYPE_COUNT, UNKNOWN, UUID
 
Method Summary
protected  int compareSecure(Value o, CompareMode mode)
          Compare the value with another value of the same type.
 Value convertPrecision(long precision, boolean force)
          Convert the precision to the requested value.
 boolean equals(java.lang.Object other)
          Check if the two values have the same hash code.
static ValueArray get(java.lang.Class<?> componentType, Value[] list)
          Get or create a array value for the given value array.
static ValueArray get(Value[] list)
          Get or create a array value for the given value array.
 java.lang.Class<?> getComponentType()
           
 int getDisplaySize()
          Get the display size in characters.
 Value[] getList()
           
 int getMemory()
          Get the memory used by this object.
 java.lang.Object getObject()
          Get the value as an object.
 long getPrecision()
          Get the precision.
 java.lang.String getSQL()
          Get the SQL expression for this value.
 java.lang.String getString()
          Get the value as a string.
 java.lang.String getTraceSQL()
          Get a medium size SQL expression for debugging or tracing.
 int getType()
          Get the value type.
 int hashCode()
           
 void set(java.sql.PreparedStatement prep, int parameterIndex)
          Set the value as a parameter in a prepared statement.
 
Methods inherited from class org.h2.value.Value
add, checkPrecision, clearCache, close, compareTo, compareTypeSave, convertScale, convertTo, copyToTemp, divide, getBigDecimal, getBoolean, getByte, getBytes, getBytesNoCopy, getDate, getDouble, getFloat, getHigherOrder, getInputStream, getInt, getLong, getReader, getResultSet, getScale, getShort, getSignum, getSmall, getTableId, getTime, getTimestamp, isLinked, link, modulus, multiply, negate, subtract, throwUnsupportedExceptionForType, toString, unlink
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

get

public static ValueArray get(Value[] list)
Get or create a array value for the given value array. Do not clone the data.

Parameters:
list - the value array
Returns:
the value

get

public static ValueArray get(java.lang.Class<?> componentType,
                             Value[] list)
Get or create a array value for the given value array. Do not clone the data.

Parameters:
componentType - the array class (null for Object[])
list - the value array
Returns:
the value

hashCode

public int hashCode()
Specified by:
hashCode in class Value

getList

public Value[] getList()

getType

public int getType()
Description copied from class: Value
Get the value type.

Specified by:
getType in class Value
Returns:
the type

getComponentType

public java.lang.Class<?> getComponentType()

getPrecision

public long getPrecision()
Description copied from class: Value
Get the precision.

Specified by:
getPrecision in class Value
Returns:
the precision

getString

public java.lang.String getString()
Description copied from class: Value
Get the value as a string.

Specified by:
getString in class Value
Returns:
the string

compareSecure

protected int compareSecure(Value o,
                            CompareMode mode)
Description copied from class: Value
Compare the value with another value of the same type.

Specified by:
compareSecure in class Value
Parameters:
o - the other value
mode - the compare mode
Returns:
0 if both values are equal, -1 if the other value is smaller, and 1 otherwise

getObject

public java.lang.Object getObject()
Description copied from class: Value
Get the value as an object.

Specified by:
getObject in class Value
Returns:
the object

set

public void set(java.sql.PreparedStatement prep,
                int parameterIndex)
Description copied from class: Value
Set the value as a parameter in a prepared statement.

Specified by:
set in class Value
Parameters:
prep - the prepared statement
parameterIndex - the parameter index

getSQL

public java.lang.String getSQL()
Description copied from class: Value
Get the SQL expression for this value.

Specified by:
getSQL in class Value
Returns:
the SQL expression

getTraceSQL

public java.lang.String getTraceSQL()
Description copied from class: Value
Get a medium size SQL expression for debugging or tracing. If the precision is too large, only a subset of the value is returned.

Overrides:
getTraceSQL in class Value
Returns:
the SQL expression

getDisplaySize

public int getDisplaySize()
Description copied from class: Value
Get the display size in characters.

Specified by:
getDisplaySize in class Value
Returns:
the display size

equals

public boolean equals(java.lang.Object other)
Description copied from class: Value
Check if the two values have the same hash code. No data conversion is made; this method returns false if the other object is not of the same class. For some values, compareTo may return 0 even if equals return false. Example: ValueDecimal 0.0 and 0.00.

Specified by:
equals in class Value
Parameters:
other - the other value
Returns:
true if they are equal

getMemory

public int getMemory()
Description copied from class: Value
Get the memory used by this object.

Overrides:
getMemory in class Value
Returns:
the memory used in bytes

convertPrecision

public Value convertPrecision(long precision,
                              boolean force)
Description copied from class: Value
Convert the precision to the requested value. The precision of the returned value may be somewhat larger than requested, because values with a fixed precision are not truncated.

Overrides:
convertPrecision in class Value
Parameters:
precision - the new precision
force - true if losing numeric precision is allowed
Returns:
the new value