org.h2.value

## Class ValueString

- java.lang.Object
- - org.h2.value.Value
  - - org.h2.value.ValueString

Direct Known Subclasses:
  ValueStringFixed, ValueStringIgnoreCase

    public class ValueString
    extends Value

Implementation of the VARCHAR data type. It is also the base class for other ValueString* classes.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.h2.value.Value

`Value.ValueBlob, Value.ValueClob`

### Field Summary

Fields
`protected java.lang.String` `value` The string data.

### Fields inherited from class org.h2.value.Value

`ARRAY, BLOB, BOOLEAN, BYTE, BYTES, CLOB, DATE, DECIMAL, DOUBLE, FLOAT, GEOMETRY, INT, JAVA_OBJECT, LONG, NULL, RESULT_SET, SHORT, STRING, STRING_FIXED, STRING_IGNORECASE, TIME, TIMESTAMP, TIMESTAMP_TZ, TIMESTAMP_UTC, TYPE_COUNT, UNKNOWN, UUID`

### Constructor Summary

Constructors
`protected` `ValueString(java.lang.String value)`

### Method Summary

Methods
`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 Value` `get(java.lang.String s)` Get or create a string value for the given string.
`static Value` `get(java.lang.String s, boolean treatEmptyStringsAsNull)` Get or create a string value for the given string.
`int` `getDisplaySize()` Get the display size in characters.
`int` `getMemory()` Get the memory used by this object.
`protected Value` `getNew(java.lang.String s)` Create a new String value of the current class.
`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.
`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, compareTo, compareTypeSafe, convertScale, convertTo, copy, copyToResult, copyToTemp, divide, getBigDecimal, getBoolean, getByte, getBytes, getBytesNoCopy, getDataHandler, getDate, getDouble, getFloat, getHigherOrder, getInputStream, getInt, getLong, getReader, getResultSet, getScale, getShort, getSignum, getSmall, getTableId, getTime, getTimestamp, getTraceSQL, isLinkedToTable, modulus, multiply, negate, remove, subtract, throwUnsupportedExceptionForType, toString`

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

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

### Field Detail

#### value

    protected final java.lang.String value

The string data.

### Constructor Detail

#### ValueString

    protected ValueString(java.lang.String value)

### Method Detail

#### 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

#### 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

#### 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

#### 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

#### getPrecision

    public long getPrecision()

Description copied from class: `Value`
Get the precision.

Specified by:
  `getPrecision` in class `Value`
Returns:
  the precision

#### 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)
             throws java.sql.SQLException

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
Throws:
  `java.sql.SQLException`

#### 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

#### 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

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in class `Value`

#### getType

    public int getType()

Description copied from class: `Value`
Get the value type.

Specified by:
  `getType` in class `Value`
Returns:
  the type

#### get

    public static Value get(java.lang.String s)

Get or create a string value for the given string.

Parameters:
  `s` - the string
Returns:
  the value

#### get

    public static Value get(java.lang.String s,
            boolean treatEmptyStringsAsNull)

Get or create a string value for the given string.

Parameters:
  `s` - the string
  `treatEmptyStringsAsNull` - whether or not to treat empty strings as NULL
Returns:
  the value

#### getNew

    protected Value getNew(java.lang.String s)

Create a new String value of the current class. This method is meant to be overridden by subclasses.

Parameters:
  `s` - the string
Returns:
  the value