Package 

Interface Value


  • 
    public interface Value
    
                        

    Value stores a value and its type in MessagePack type system.

    Type conversion

    You can check type first using isXxx() methods or getValueType method, then convert the value to a subtype using asXxx() methods. You can also call asXxx() methods directly and catch com.batch.android.msgpack.core.MessageTypeCastException.

    Immutable interface

    Value interface is the base interface of all Value interfaces. Immutable subtypes are useful so that you can declare that a (final) field or elements of a container object are immutable. Method arguments should be a regular Value interface generally.

    You can use immutableValue method to get immutable subtypes.

    Converting to JSON

    toJson method returns JSON representation of a Value. See its documents for details.

    toString() also returns a string representation of a Value that is similar to JSON. However, unlike toJson() method, toString() may return a special format that is not be compatible with JSON when JSON doesn't support the type such as ExtensionValue.

    • Method Detail

      • getValueType

         abstract ValueType getValueType()

        Returns type of this value.

        Note that you can't use instanceof to check type of a value because type of a mutable value is variable.

      • immutableValue

         abstract ImmutableValue immutableValue()

        Returns immutable copy of this value.

        This method simply returns this without copying the value if this value is already immutable.

      • isNilValue

         abstract boolean isNilValue()

        Returns true if type of this value is Nil.

        If this method returns true, {@code asNilValue} never throws exceptions.Note that you can't use instanceof or cast ((NilValue) thisValue) to check type of a value because type of a mutable value is variable.

      • isBooleanValue

         abstract boolean isBooleanValue()

        Returns true if type of this value is Boolean.

        If this method returns true, {@code asBooleanValue} never throws exceptions.Note that you can't use instanceof or cast ((BooleanValue) thisValue) to check type of a value because type of a mutable value is variable.

      • isNumberValue

         abstract boolean isNumberValue()

        Returns true if type of this value is Integer or Float.

        If this method returns true, {@code asNumberValue} never throws exceptions.Note that you can't use instanceof or cast ((NumberValue) thisValue) to check type of a value because type of a mutable value is variable.

      • isIntegerValue

         abstract boolean isIntegerValue()

        Returns true if type of this value is Integer.

        If this method returns true, {@code asIntegerValue} never throws exceptions.Note that you can't use instanceof or cast ((IntegerValue) thisValue) to check type of a value because type of a mutable value is variable.

      • isFloatValue

         abstract boolean isFloatValue()

        Returns true if type of this value is Float.

        If this method returns true, {@code asFloatValue} never throws exceptions.Note that you can't use instanceof or cast ((FloatValue) thisValue) to check type of a value because type of a mutable value is variable.

      • isRawValue

         abstract boolean isRawValue()

        Returns true if type of this value is String or Binary.

        If this method returns true, {@code asRawValue} never throws exceptions.Note that you can't use instanceof or cast ((RawValue) thisValue) to check type of a value because type of a mutable value is variable.

      • isBinaryValue

         abstract boolean isBinaryValue()

        Returns true if type of this value is Binary.

        If this method returns true, {@code asBinaryValue} never throws exceptions.Note that you can't use instanceof or cast ((BinaryValue) thisValue) to check type of a value because type of a mutable value is variable.

      • isStringValue

         abstract boolean isStringValue()

        Returns true if type of this value is String.

        If this method returns true, {@code asStringValue} never throws exceptions.Note that you can't use instanceof or cast ((StringValue) thisValue) to check type of a value because type of a mutable value is variable.

      • isArrayValue

         abstract boolean isArrayValue()

        Returns true if type of this value is Array.

        If this method returns true, {@code asArrayValue} never throws exceptions.Note that you can't use instanceof or cast ((ArrayValue) thisValue) to check type of a value because type of a mutable value is variable.

      • isMapValue

         abstract boolean isMapValue()

        Returns true if type of this value is Map.

        If this method returns true, {@code asMapValue} never throws exceptions.Note that you can't use instanceof or cast ((MapValue) thisValue) to check type of a value because type of a mutable value is variable.

      • isExtensionValue

         abstract boolean isExtensionValue()

        Returns true if type of this an Extension.

        If this method returns true, {@code asExtensionValue} never throws exceptions.Note that you can't use instanceof or cast ((ExtensionValue) thisValue) to check type of a value becausetype of a mutable value is variable.

      • asNilValue

         abstract NilValue asNilValue()

        Returns the value as {@code NilValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((NilValue) thisValue) to check type of a value because type of a mutable value is variable.

      • asBooleanValue

         abstract BooleanValue asBooleanValue()

        Returns the value as {@code BooleanValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((BooleanValue) thisValue) to check type of a value because type of a mutable value is variable.

      • asNumberValue

         abstract NumberValue asNumberValue()

        Returns the value as {@code NumberValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((NumberValue) thisValue) to check type of a value because type of a mutable value is variable.

      • asIntegerValue

         abstract IntegerValue asIntegerValue()

        Returns the value as {@code IntegerValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((IntegerValue) thisValue) to check type of a value because type of a mutable value is variable.

      • asFloatValue

         abstract FloatValue asFloatValue()

        Returns the value as {@code FloatValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((FloatValue) thisValue) to check type of a value because type of a mutable value is variable.

      • asRawValue

         abstract RawValue asRawValue()

        Returns the value as {@code RawValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((RawValue) thisValue) to check type of a value because type of a mutable value is variable.

      • asBinaryValue

         abstract BinaryValue asBinaryValue()

        Returns the value as {@code BinaryValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((BinaryValue) thisValue) to check type of a value because type of a mutable value is variable.

      • asStringValue

         abstract StringValue asStringValue()

        Returns the value as {@code StringValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((StringValue) thisValue) to check type of a value because type of a mutable value is variable.

      • asArrayValue

         abstract ArrayValue asArrayValue()

        Returns the value as {@code ArrayValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((ArrayValue) thisValue) to check type of a value because type of a mutable value is variable.

      • asMapValue

         abstract MapValue asMapValue()

        Returns the value as {@code MapValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((MapValue) thisValue) to check type of a value because type of a mutable value is variable.

      • asExtensionValue

         abstract ExtensionValue asExtensionValue()

        Returns the value as {@code ExtensionValue}. Otherwise throws {@code MessageTypeCastException}.

        Note that you can't use instanceof or cast ((ExtensionValue) thisValue) to check type of a valuebecause type of a mutable value is variable.

      • writeTo

         abstract void writeTo(MessagePacker pk)

        Serializes the value using the specified {@code MessagePacker}

      • equals

         abstract boolean equals(Object obj)

        Compares this value to the specified object.

        This method returns {@code true} if type and value are equivalent.If this value is {@code MapValue} or {@code ArrayValue}, this method check equivalence of elements recursively.

      • toJson

         abstract String toJson()

        Returns json representation of this Value.

        Following behavior is not configurable at this release and they might be changed at future releases:

        • if a key of MapValue is not string, the key is converted to a string using toString method.
        • NaN and Infinity of DoubleValue are converted to null.
        • ExtensionValue is converted to a 2-element array where first element is a number and second element is the data encoded in hex.
        • BinaryValue is converted to a string using UTF-8 encoding. Invalid byte sequence is replaced with U+FFFD replacement character.
        • Invalid UTF-8 byte sequences in StringValue is replaced with U+FFFD replacement character