Packages

trait Input extends Any

Represents an abstract source from which a value may be deserialized (read). Each of the read methods tries to read a value of specified type and may throw an exception (usually ReadFailure) when reading is not successful.

An Input value should be assumed to be stateful. If any of the readX methods have already been called, the Input instance can no longer be used and MUST be discarded.

In order to ignore the value kept in this Input, skip() MUST be called.

In summary: every Input MUST be fully exhausted by either calling one of the read methods which returns successful value or by calling skip(). Also, ListInput and ObjectInput instances returned from this Input must also be fully exhausted on their own.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Input
  2. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def getClass(): Class[_]
    Definition Classes
    Any
  2. abstract def readList(): ListInput
  3. abstract def readNull(): Boolean

    Attempts to read null value from an Input.

    Attempts to read null value from an Input. Returning true means that input instance contained a null value. Its state should then be changed so that input can be considered "consumed" (no other reads are possible on this instance). Returning false means that the input contains something else than a null value. Its state must not change in this situation and it must be possible to call some other read method on it.

  4. abstract def readObject(): ObjectInput
  5. abstract def readSimple(): SimpleInput
  6. abstract def skip(): Unit

    Ignores this input and skips its contents internally, if necessary

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    Any
  2. final def ##(): Int
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def equals(arg0: Any): Boolean
    Definition Classes
    Any
  6. def hashCode(): Int
    Definition Classes
    Any
  7. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  8. def legacyOptionEncoding: Boolean

    This ugly workaround has been introduced when standard Option encoding changed from zero-or-one element list encoding to unwrapped-or-null encoding which effectively disallowed serializing null and Some(null).

    This ugly workaround has been introduced when standard Option encoding changed from zero-or-one element list encoding to unwrapped-or-null encoding which effectively disallowed serializing null and Some(null). If some Input implementation still wants to use the list encoding, it may do it by overriding this method and returning true.

  9. def readCustom[T](typeMarker: TypeMarker[T]): commons.Opt[T]

    Attempts to read some arbitrary custom "native" value that this input may or may not support.

    Attempts to read some arbitrary custom "native" value that this input may or may not support. The custom type is identified by an instance of TypeMarker which is usually an object (e.g. companion object of the custom T type itself). This way Input and Output implementations may support other native types than the ones supported by default by Input and Output interfaces.

    Codecs may use this method to optimize encoded format in case it it possible with particular Input implementation. GenCodec may generally assume that if the data was written by a corresponding Output which also support this custom native type then readCustom should return non-empty value.

    Opt.Empty returned by this method indicates that this input does not support this particular type. If it supports it but there was some error reading it then a ReadFailure should be thrown instead of returning Opt.Empty.

  10. def readMetadata[T](metadata: InputMetadata[T]): commons.Opt[T]

    Attempts to read some arbitrary "metadata" about this input instance.

    Attempts to read some arbitrary "metadata" about this input instance. Metadata is identified by InputMetadata which is usually an object (e.g. companion object of metadata value type T). An example of InputMetadata is JsonType supported by JsonStringInput.

    Codecs may use this method to optimize encoded format in case it it possible with particular Input implementation. GenCodec may generally assume that if the data was written by a corresponding Output that preserves particular metadata type (which may be determined by Output.keepsMetadata()) then readMetadata will return a non-empty value.

    Opt.Empty may be returned form this method ONLY if this Input implementation does not support this metadata type AT ALL. Any errors should be signaled by throwing ReadFailure.

  11. def toString(): String
    Definition Classes
    Any

Inherited from Any

Ungrouped