Class SerializableValueDescription

  • All Implemented Interfaces:
    java.io.Serializable

    class SerializableValueDescription
    extends java.lang.Object
    implements java.io.Serializable
    This class exists solely to provide a serializable description of a value to be serialized as a field in AssumptionViolatedException. Being a Throwable, it is required to be Serializable, but a value of type Object provides no guarantee to be serializable. This class works around that limitation as AssumptionViolatedException only every uses the string representation of the value, while still retaining backwards compatibility with classes compiled against its class signature before 4.14 and/or deserialization of previously serialized instances.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String value  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) static java.lang.Object asSerializableValue​(java.lang.Object value)
      Factory method that checks to see if the value is already serializable.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • value

        private final java.lang.String value
    • Constructor Detail

      • SerializableValueDescription

        private SerializableValueDescription​(java.lang.Object value)
    • Method Detail

      • asSerializableValue

        static java.lang.Object asSerializableValue​(java.lang.Object value)
        Factory method that checks to see if the value is already serializable.
        Parameters:
        value - the value to make serializable
        Returns:
        The provided value if it is null or already serializable, the SerializableValueDescription representation of it if it is not.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object