Module java.base
Package java.io

# Interface ObjectInputFilter.FilterInfo

Enclosing interface:
  `ObjectInputFilter`

public static interface ObjectInputFilter.FilterInfo
FilterInfo provides access to information about the current object being deserialized and the status of the `ObjectInputStream`.

Since:
  9

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `arrayLength()`
  The number of array elements when deserializing an array of the class.
  `long`
  `depth()`
  The current depth.
  `long`
  `references()`
  The current number of object references.
  `Class<?>`
  `serialClass()`
  The class of an object being deserialized.
  `long`
  `streamBytes()`
  The current number of bytes consumed.

- ## Method Details

  - ### serialClass

    Class<?> serialClass()
    The class of an object being deserialized. For arrays, it is the array type. For example, the array class name of a 2 dimensional array of strings is "`[[Ljava.lang.String;`". To check the array's element type, iteratively use `Class.getComponentType` while the result is an array and then check the class. The `serialClass is null` in the case where a new object is not being created and to give the filter a chance to check the depth, number of references to existing objects, and the stream size.
    Returns:
      class of an object being deserialized; may be null

  - ### arrayLength

    long arrayLength()
    The number of array elements when deserializing an array of the class.
    Returns:
      the non-negative number of array elements when deserializing an array of the class, otherwise -1

  - ### depth

    long depth()
    The current depth. The depth starts at `1` and increases for each nested object and decrements when each nested object returns.
    Returns:
      the current depth

  - ### references

    long references()
    The current number of object references.
    Returns:
      the non-negative current number of object references

  - ### streamBytes

    long streamBytes()
    The current number of bytes consumed.
    Implementation Requirements:
      `streamBytes` is implementation specific and may not be directly related to the object in the stream that caused the callback.
    Returns:
      the non-negative current number of bytes consumed