All Implemented Interfaces:
TreeNode, JsonSerializable, Serializable, Iterable<JsonNode>

public class FloatNode extends NumericNode
JsonNode implementation for efficiently containing 32-bit `float` values.
Since:
2.2
See Also:
  • Field Details

    • _value

      protected final float _value
  • Constructor Details

    • FloatNode

      public FloatNode(float v)
  • Method Details

    • valueOf

      public static FloatNode valueOf(float v)
    • asToken

      public JsonToken asToken()
      Description copied from class: BaseJsonNode
      Method that can be used for efficient type detection when using stream abstraction for traversing nodes. Will return the first JsonToken that equivalent stream event would produce (for most nodes there is just one token but for structured/container types multiple)
      Specified by:
      asToken in interface TreeNode
      Specified by:
      asToken in class ValueNode
      Returns:
      JsonToken that is most closely associated with the node type
    • numberType

      public JsonParser.NumberType numberType()
      Description copied from class: BaseJsonNode
      Returns code that identifies type of underlying numeric value, if (and only if) node is a number node.
      Specified by:
      numberType in interface TreeNode
      Specified by:
      numberType in class NumericNode
      Returns:
      Type of number contained, if any; or null if node does not contain numeric value.
    • isFloatingPointNumber

      public boolean isFloatingPointNumber()
      Overrides:
      isFloatingPointNumber in class JsonNode
      Returns:
      True if this node represents a non-integral numeric JSON value
    • isFloat

      public boolean isFloat()
      Overrides:
      isFloat in class JsonNode
    • canConvertToInt

      public boolean canConvertToInt()
      Description copied from class: JsonNode
      Method that can be used to check whether this node is a numeric node (JsonNode.isNumber() would return true) AND its value fits within Java's 32-bit signed integer type, int. Note that floating-point numbers are convertible if the integral part fits without overflow (as per standard Java coercion rules)

      NOTE: this method does not consider possible value type conversion from JSON String into Number; so even if this method returns false, it is possible that JsonNode.asInt() could still succeed if node is a JSON String representing integral number, or boolean.

      Specified by:
      canConvertToInt in class NumericNode
    • canConvertToLong

      public boolean canConvertToLong()
      Description copied from class: JsonNode
      Method that can be used to check whether this node is a numeric node (JsonNode.isNumber() would return true) AND its value fits within Java's 64-bit signed integer type, long. Note that floating-point numbers are convertible if the integral part fits without overflow (as per standard Java coercion rules)

      NOTE: this method does not consider possible value type conversion from JSON String into Number; so even if this method returns false, it is possible that JsonNode.asLong() could still succeed if node is a JSON String representing integral number, or boolean.

      Specified by:
      canConvertToLong in class NumericNode
    • canConvertToExactIntegral

      public boolean canConvertToExactIntegral()
      Description copied from class: JsonNode
      Method that can be used to check whether contained value is numeric (returns true for JsonNode.isNumber()) and can be losslessly converted to integral number (specifically, BigInteger but potentially others, see JsonNode.canConvertToInt() and JsonNode.canConvertToInt()). Latter part allows floating-point numbers (for which JsonNode.isFloatingPointNumber() returns true) that do not have fractional part. Note that "not-a-number" values of double and float will return false as they can not be converted to matching integral representations.
      Overrides:
      canConvertToExactIntegral in class JsonNode
      Returns:
      True if the value is an actual number with no fractional part; false for non-numeric types, NaN representations of floating-point numbers, and floating-point numbers with fractional part.
    • numberValue

      public Number numberValue()
      Description copied from class: JsonNode
      Returns numeric value for this node, if and only if this node is numeric (JsonNode.isNumber() returns true); otherwise returns null
      Specified by:
      numberValue in class NumericNode
      Returns:
      Number value this node contains, if any (null for non-number nodes).
    • shortValue

      public short shortValue()
      Description copied from class: JsonNode
      Returns 16-bit short value for this node, if and only if this node is numeric (JsonNode.isNumber() returns true). For other types returns 0. For floating-point numbers, value is truncated using default Java coercion, similar to how cast from double to short operates.
      Overrides:
      shortValue in class JsonNode
      Returns:
      Short value this node contains, if any; 0 for non-number nodes.
    • intValue

      public int intValue()
      Description copied from class: JsonNode
      Returns integer value for this node, if and only if this node is numeric (JsonNode.isNumber() returns true). For other types returns 0. For floating-point numbers, value is truncated using default Java coercion, similar to how cast from double to int operates.
      Specified by:
      intValue in class NumericNode
      Returns:
      Integer value this node contains, if any; 0 for non-number nodes.
    • longValue

      public long longValue()
      Description copied from class: JsonNode
      Returns 64-bit long value for this node, if and only if this node is numeric (JsonNode.isNumber() returns true). For other types returns 0. For floating-point numbers, value is truncated using default Java coercion, similar to how cast from double to long operates.
      Specified by:
      longValue in class NumericNode
      Returns:
      Long value this node contains, if any; 0 for non-number nodes.
    • floatValue

      public float floatValue()
      Description copied from class: JsonNode
      Returns 32-bit floating value for this node, if and only if this node is numeric (JsonNode.isNumber() returns true). For other types returns 0.0. For integer values, conversion is done using coercion; this means that an overflow is possible for `long` values
      Overrides:
      floatValue in class JsonNode
      Returns:
      32-bit float value this node contains, if any; 0.0 for non-number nodes.
    • doubleValue

      public double doubleValue()
      Description copied from class: JsonNode
      Returns 64-bit floating point (double) value for this node, if and only if this node is numeric (JsonNode.isNumber() returns true). For other types returns 0.0. For integer values, conversion is done using coercion; this may result in overflows with BigInteger values.
      Specified by:
      doubleValue in class NumericNode
      Returns:
      64-bit double value this node contains, if any; 0.0 for non-number nodes.
    • decimalValue

      public BigDecimal decimalValue()
      Description copied from class: JsonNode
      Returns floating point value for this node (as BigDecimal), if and only if this node is numeric (JsonNode.isNumber() returns true). For other types returns BigDecimal.ZERO.
      Specified by:
      decimalValue in class NumericNode
      Returns:
      BigDecimal value this node contains, if numeric node; BigDecimal.ZERO for non-number nodes.
    • bigIntegerValue

      public BigInteger bigIntegerValue()
      Description copied from class: JsonNode
      Returns integer value for this node (as BigInteger), if and only if this node is numeric (JsonNode.isNumber() returns true). For other types returns BigInteger.ZERO.
      Specified by:
      bigIntegerValue in class NumericNode
      Returns:
      BigInteger value this node contains, if numeric node; BigInteger.ZERO for non-number nodes.
    • asText

      public String asText()
      Description copied from class: JsonNode
      Method that will return a valid String representation of the container value, if the node is a value node (method JsonNode.isValueNode() returns true), otherwise empty String.
      Specified by:
      asText in class NumericNode
    • isNaN

      public boolean isNaN()
      Description copied from class: NumericNode
      Convenience method for checking whether this node is a FloatNode or DoubleNode that contains "not-a-number" (NaN) value.
      Overrides:
      isNaN in class NumericNode
    • serialize

      public final void serialize(JsonGenerator g, SerializerProvider provider) throws IOException
      Description copied from class: BaseJsonNode
      Method called to serialize node instances using given generator.
      Specified by:
      serialize in interface JsonSerializable
      Specified by:
      serialize in class BaseJsonNode
      Throws:
      IOException
    • equals

      public boolean equals(Object o)
      Description copied from class: JsonNode
      Equality for node objects is defined as full (deep) value equality. This means that it is possible to compare complete JSON trees for equality by comparing equality of root nodes.

      Note: marked as abstract to ensure all implementation classes define it properly and not rely on definition from Object.

      Specified by:
      equals in class JsonNode
    • hashCode

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