Class ClickHouseMapValue

java.lang.Object
com.clickhouse.data.value.ClickHouseObjectValue<Map<?,?>>
com.clickhouse.data.value.ClickHouseMapValue
All Implemented Interfaces:
ClickHouseValue, Serializable

public class ClickHouseMapValue extends ClickHouseObjectValue<Map<?,?>>
See Also:
  • Constructor Details

    • ClickHouseMapValue

      protected ClickHouseMapValue(Map<?,?> value, Class<?> keyType, Class<?> valueType)
  • Method Details

    • ofEmpty

      public static ClickHouseMapValue ofEmpty(Class<?> keyType, Class<?> valueType)
      Creates an empty map.
      Parameters:
      keyType - non-null class of key
      valueType - non-null class of value
      Returns:
      empty map
    • of

      public static ClickHouseMapValue of(Map<?,?> value, Class<?> keyType, Class<?> valueType)
      Wrap the given value.
      Parameters:
      value - value
      keyType - non-null class of key
      valueType - non-null class of value
      Returns:
      object representing the value
    • of

      public static ClickHouseMapValue of(ClickHouseValue ref, Map<?,?> value, Class<?> keyType, Class<?> valueType)
      Update value of the given object or create a new instance if ref is null.
      Parameters:
      ref - object to update, could be null
      value - value
      keyType - non-null class of key
      valueType - non-null class of value
      Returns:
      same object as ref or a new instance if it's null
    • getDefaultKey

      protected Object getDefaultKey()
    • set

      protected ClickHouseMapValue set(Map<?,?> value)
      Overrides:
      set in class ClickHouseObjectValue<Map<?,?>>
    • copy

      public ClickHouseMapValue copy(boolean deep)
      Description copied from interface: ClickHouseValue
      Gets 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
    • asMap

      public Map<Object,Object> asMap()
      Description copied from interface: ClickHouseValue
      Gets 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: ClickHouseValue
      Gets value as a map.
      Type Parameters:
      K - type of key
      V - type of value
      Parameters:
      keyClass - non-null class of key
      valueClass - non-null class of value
      Returns:
      non-null map value
    • asString

      public String asString()
      Description copied from interface: ClickHouseValue
      Gets value as unbounded string, using default charset(usually UTF-8).
      Specified by:
      asString in interface ClickHouseValue
      Overrides:
      asString in class ClickHouseObjectValue<Map<?,?>>
      Returns:
      string value, could be null
    • isNullOrEmpty

      public boolean isNullOrEmpty()
      Description copied from interface: ClickHouseValue
      Checks 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 false for an empty string. This is because String is treated as value-based type instead of a container like Array.

      Specified by:
      isNullOrEmpty in interface ClickHouseValue
      Overrides:
      isNullOrEmpty in class ClickHouseObjectValue<Map<?,?>>
      Returns:
      true if the value is null or empty; false otherwise
    • resetToDefault

      public ClickHouseMapValue resetToDefault()
      Description copied from interface: ClickHouseValue
      Resets to default value of corresponding data type.
      Returns:
      this object
    • resetToNullOrEmpty

      public ClickHouseMapValue resetToNullOrEmpty()
      Description copied from interface: ClickHouseValue
      Resets 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:
      resetToNullOrEmpty in interface ClickHouseValue
      Overrides:
      resetToNullOrEmpty in class ClickHouseObjectValue<Map<?,?>>
      Returns:
      this object
    • toSqlExpression

      public String toSqlExpression()
      Description copied from interface: ClickHouseValue
      Converts the value to escaped SQL expression. For example, number 123 will be converted to 123, while string "12'3" will be converted to @{code '12\'3'}.
      Specified by:
      toSqlExpression in interface ClickHouseValue
      Overrides:
      toSqlExpression in class ClickHouseObjectValue<Map<?,?>>
      Returns:
      escaped SQL expression
    • update

      public ClickHouseMapValue update(byte value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(short value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(int value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(long value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(float value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(double value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(BigInteger value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(BigDecimal value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(String value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(Enum<?> value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(Inet4Address value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(Inet6Address value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(LocalDate value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(LocalTime value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(LocalDateTime value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(Map<?,?> value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseMapValue update(UUID value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • updateUnknown

      public ClickHouseValue updateUnknown(Object value)
      Description copied from interface: ClickHouseValue
      Updates value when the type is not supported. This method will be called at the end of ClickHouseValue.update(Object) after trying all known classes. By default, it's same as update(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 ClickHouseMapValue update(ClickHouseValue value)
      Description copied from interface: ClickHouseValue
      Updates value.
      Parameters:
      value - value to update
      Returns:
      this object
    • update

      public ClickHouseValue update(Object value)
      Description copied from interface: ClickHouseValue
      Updates value. This method tries to identify type of value and then use corresponding update method to proceed. Unknown value will be passed to ClickHouseValue.updateUnknown(Object).
      Specified by:
      update in interface ClickHouseValue
      Overrides:
      update in class ClickHouseObjectValue<Map<?,?>>
      Parameters:
      value - value to update, could be null
      Returns:
      this object