Package com.clickhouse.client.data
Class ClickHouseNestedValue
- java.lang.Object
-
- com.clickhouse.client.data.ClickHouseObjectValue<Object[][]>
-
- com.clickhouse.client.data.ClickHouseNestedValue
-
- All Implemented Interfaces:
ClickHouseValue,Serializable
public class ClickHouseNestedValue extends ClickHouseObjectValue<Object[][]>
Wrapper class of Nested.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedClickHouseNestedValue(List<ClickHouseColumn> columns, Object[][] values)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Object[]asArray()Gets value as an object array.<T> T[]asArray(Class<T> clazz)Gets value as an array.Map<Object,Object>asMap()Gets value as a map.<K,V>
Map<K,V>asMap(Class<K> keyClass, Class<V> valueClass)Gets value as a map.StringasString(int length, Charset charset)Gets value as fixed length(in bytes) string.protected static Object[][]check(List<ClickHouseColumn> columns, Object[][] value)ClickHouseNestedValuecopy(boolean deep)Gets a copy of this value object.booleanequals(Object obj)List<ClickHouseColumn>getColumns()Gets immutable list of nested columns.protected ObjectgetSingleValue()inthashCode()booleanisNullOrEmpty()Checks if the value is null, or empty for non-null types like Array, Tuple and Map.static ClickHouseNestedValueof(ClickHouseValue ref, List<ClickHouseColumn> columns, Object[][] values)Update value of the given object or create a new instance ifrefis null.static ClickHouseNestedValueof(List<ClickHouseColumn> columns, Object[][] values)Wrap the given value.static ClickHouseNestedValueofEmpty(List<ClickHouseColumn> columns)Creates an empty nested value.ClickHouseNestedValueresetToNullOrEmpty()Resets value to null, or empty when null is not supported(e.g.protected ClickHouseNestedValueset(Object[][] value)StringtoSqlExpression()Converts the value to escaped SQL expression.ClickHouseNestedValueupdate(boolean value)Updates value.ClickHouseNestedValueupdate(boolean[] value)Updates value.ClickHouseNestedValueupdate(byte value)Updates value.ClickHouseNestedValueupdate(byte[] value)Updates value.ClickHouseNestedValueupdate(char value)Updates value.ClickHouseNestedValueupdate(char[] value)Updates value.ClickHouseNestedValueupdate(double value)Updates value.ClickHouseNestedValueupdate(double[] value)Updates value.ClickHouseNestedValueupdate(float value)Updates value.ClickHouseNestedValueupdate(float[] value)Updates value.ClickHouseNestedValueupdate(int value)Updates value.ClickHouseNestedValueupdate(int[] value)Updates value.ClickHouseNestedValueupdate(long value)Updates value.ClickHouseNestedValueupdate(long[] value)Updates value.ClickHouseNestedValueupdate(short value)Updates value.ClickHouseNestedValueupdate(short[] value)Updates value.ClickHouseNestedValueupdate(ClickHouseValue value)Updates value.ClickHouseNestedValueupdate(Enum<?> value)Updates value.ClickHouseNestedValueupdate(Object value)Updates value.ClickHouseNestedValueupdate(Object[] value)Updates value.ClickHouseNestedValueupdate(String value)Updates value.ClickHouseNestedValueupdate(BigDecimal value)Updates value.ClickHouseNestedValueupdate(BigInteger value)Updates value.ClickHouseNestedValueupdate(Inet4Address value)Updates value.ClickHouseNestedValueupdate(Inet6Address value)Updates value.ClickHouseNestedValueupdate(LocalDate value)Updates value.ClickHouseNestedValueupdate(LocalDateTime value)Updates value.ClickHouseNestedValueupdate(LocalTime value)Updates value.ClickHouseNestedValueupdate(Collection<?> value)Updates value.ClickHouseNestedValueupdate(Enumeration<?> value)Updates value.ClickHouseNestedValueupdate(Map<?,?> value)Updates value.ClickHouseNestedValueupdate(UUID value)Updates value.ClickHouseValueupdateUnknown(Object value)Updates value when the type is not supported.-
Methods inherited from class com.clickhouse.client.data.ClickHouseObjectValue
asBigDecimal, asBigInteger, asByte, asDouble, asFloat, asInteger, asLong, asObject, asShort, getValue, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.clickhouse.client.ClickHouseValue
asBigDecimal, asBoolean, asByteStream, asCharacter, asCharacterStream, asDate, asDateTime, asDateTime, asEnum, asInet4Address, asInet6Address, asInstant, asInstant, asObject, asOffsetDateTime, asOffsetDateTime, asString, asString, asString, asTime, asTime, asTuple, asUuid, asZonedDateTime, asZonedDateTime, copy, isInfinity, isNaN, newUnsupportedException, update, update, update, update, update
-
-
-
-
Constructor Detail
-
ClickHouseNestedValue
protected ClickHouseNestedValue(List<ClickHouseColumn> columns, Object[][] values)
-
-
Method Detail
-
ofEmpty
public static ClickHouseNestedValue ofEmpty(List<ClickHouseColumn> columns)
Creates an empty nested value.- Parameters:
columns- non-null columns- Returns:
- empty nested value
-
of
public static ClickHouseNestedValue of(List<ClickHouseColumn> columns, Object[][] values)
Wrap the given value.- Parameters:
columns- columnsvalues- values- Returns:
- object representing the value
-
of
public static ClickHouseNestedValue of(ClickHouseValue ref, List<ClickHouseColumn> columns, Object[][] values)
Update value of the given object or create a new instance ifrefis null.- Parameters:
ref- object to update, could be nullcolumns- columnsvalues- values- Returns:
- same object as
refor a new instance if it's null
-
check
protected static Object[][] check(List<ClickHouseColumn> columns, Object[][] value)
-
getSingleValue
protected Object getSingleValue()
-
set
protected ClickHouseNestedValue set(Object[][] value)
- Overrides:
setin classClickHouseObjectValue<Object[][]>
-
getColumns
public List<ClickHouseColumn> getColumns()
Gets immutable list of nested columns.- Returns:
- immutable list of columns
-
copy
public ClickHouseNestedValue copy(boolean deep)
Description copied from interface:ClickHouseValueGets a copy of this value object.- Parameters:
deep- true to create a deep copy; false for a shallow copy- Returns:
- copy of this value object
-
asArray
public Object[] asArray()
Description copied from interface:ClickHouseValueGets value as an object array.- Returns:
- non-null object array
-
asArray
public <T> T[] asArray(Class<T> clazz)
Description copied from interface:ClickHouseValueGets value as an array.- Type Parameters:
T- type of the element- Parameters:
clazz- class of the element- Returns:
- non-null array
-
asMap
public Map<Object,Object> asMap()
Description copied from interface:ClickHouseValueGets value as a map.- Returns:
- non-null map value
-
asMap
public <K,V> Map<K,V> asMap(Class<K> keyClass, Class<V> valueClass)
Description copied from interface:ClickHouseValueGets value as a map.- Type Parameters:
K- type of keyV- type of value- Parameters:
keyClass- non-null class of keyvalueClass- non-null class of value- Returns:
- non-null map value
-
asString
public String asString(int length, Charset charset)
Description copied from interface:ClickHouseValueGets value as fixed length(in bytes) string.- Specified by:
asStringin interfaceClickHouseValue- Overrides:
asStringin classClickHouseObjectValue<Object[][]>- Parameters:
length- byte length of the string, 0 or negative number means unboundedcharset- charset, null is same as default(UTF-8)- Returns:
- string value, could be null
-
isNullOrEmpty
public boolean isNullOrEmpty()
Description copied from interface:ClickHouseValueChecks if the value is null, or empty for non-null types like Array, Tuple and Map.Please pay attention that only nullability will be considered for String, meaning this method will return
falsefor an empty string. This is because String is treated as value-based type instead of a container like Array.- Specified by:
isNullOrEmptyin interfaceClickHouseValue- Overrides:
isNullOrEmptyin classClickHouseObjectValue<Object[][]>- Returns:
- true if the value is null or empty; false otherwise
-
resetToNullOrEmpty
public ClickHouseNestedValue resetToNullOrEmpty()
Description copied from interface:ClickHouseValueResets value to null, or empty when null is not supported(e.g. Array, Tuple and Map etc.).Keep in mind that String is value-based type, so this method will change its value to null instead of an empty string.
- Specified by:
resetToNullOrEmptyin interfaceClickHouseValue- Overrides:
resetToNullOrEmptyin classClickHouseObjectValue<Object[][]>- Returns:
- this object
-
toSqlExpression
public String toSqlExpression()
Description copied from interface:ClickHouseValueConverts the value to escaped SQL expression. For example, number 123 will be converted to123, while string "12'3" will be converted to @{code '12\'3'}.- Specified by:
toSqlExpressionin interfaceClickHouseValue- Overrides:
toSqlExpressionin classClickHouseObjectValue<Object[][]>- Returns:
- escaped SQL expression
-
update
public ClickHouseNestedValue update(boolean value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(boolean[] value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(char value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(char[] value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(byte value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(byte[] value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(short value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(short[] value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(int value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(int[] value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(long value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(long[] value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(float value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(float[] value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(double value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(double[] value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(BigInteger value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(BigDecimal value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(Enum<?> value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(Inet4Address value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(Inet6Address value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(LocalDate value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(LocalTime value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(LocalDateTime value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(Collection<?> value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(Enumeration<?> value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(Map<?,?> value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(String value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(UUID value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(ClickHouseValue value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(Object[] value)
Description copied from interface:ClickHouseValueUpdates value.- Parameters:
value- value to update- Returns:
- this object
-
updateUnknown
public ClickHouseValue updateUnknown(Object value)
Description copied from interface:ClickHouseValueUpdates value when the type is not supported. This method will be called at the end ofClickHouseValue.update(Object)after trying all known classes. By default, it's same asupdate(String.valueOf(value)).Please avoid to call
ClickHouseValue.update(Object)here as it will create endless loop.- Parameters:
value- value to update- Returns:
- this object
-
update
public ClickHouseNestedValue update(Object value)
Description copied from interface:ClickHouseValueUpdates value. This method tries to identify type ofvalueand then use corresponding update method to proceed. Unknown value will be passed toClickHouseValue.updateUnknown(Object).- Specified by:
updatein interfaceClickHouseValue- Overrides:
updatein classClickHouseObjectValue<Object[][]>- Parameters:
value- value to update, could be null- Returns:
- this object
-
equals
public boolean equals(Object obj)
- Overrides:
equalsin classClickHouseObjectValue<Object[][]>
-
hashCode
public int hashCode()
- Overrides:
hashCodein classClickHouseObjectValue<Object[][]>
-
-