Record Class CachedInfoResponse

java.lang.Object
java.lang.Record
org.firebirdsql.gds.ng.CachedInfoResponse
Record Components:
infoResponse - byte array with info response; the caller of the constructor is responsible for cloning/copying the array if needed

@NullMarked public record CachedInfoResponse(byte[] infoResponse) extends Record
Cached info response.

This record holds an info response array, and can produce a filtered response holding only those items asked for.

Since:
6.0.2
Author:
Mark Rotteveel
  • Constructor Summary

    Constructors
    Constructor
    Description
    CachedInfoResponse(byte[] infoResponse)
    Creates an instance of a CachedInfoResponse record class.
  • Method Summary

    Modifier and Type
    Method
    Description
     
    boolean
    Indicates whether some other object is "equal to" this one.
    byte[]
    filtered(byte[] requestItems)
    Produces a response with only the items in requestItems, allowing items to be missing.
    Optional<byte[]>
    filteredComplete(byte[] requestItems)
    Produces a response with only the items in requestItems, requiring all items to be present.
    int
    Returns a hash code value for this object.
    byte[]
    Returns the value of the infoResponse record component.
    final String
    Returns a string representation of this record class.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • CachedInfoResponse

      public CachedInfoResponse(byte[] infoResponse)
      Creates an instance of a CachedInfoResponse record class.
      Parameters:
      infoResponse - the value for the infoResponse record component
  • Method Details

    • empty

      public static CachedInfoResponse empty()
      Returns:
      a — possibly cached — empty cached info response
    • filtered

      public byte[] filtered(byte[] requestItems)
      Produces a response with only the items in requestItems, allowing items to be missing.

      If there are no matching items, or the cached response is empty, then a byte array with only ISCConstants.isc_info_end is returned.

      Parameters:
      requestItems - requested info items
      Returns:
      an info response with only the requested items, ending in ISCConstants.isc_info_end
      See Also:
    • filteredComplete

      public Optional<byte[]> filteredComplete(byte[] requestItems)
      Produces a response with only the items in requestItems, requiring all items to be present.

      If at least one item in requestItems (excluding ISCConstants.isc_info_end) is not found in this cached info response, empty is returned.

      Parameters:
      requestItems - requested info items
      Returns:
      an optional with an info response with only the requested items, and ending in ISCConstants.isc_info_end, or empty if at least one of the requested items where not found in the cached response, or if the cached response is empty
      See Also:
    • infoResponse

      public byte[] infoResponse()
      Returns the value of the infoResponse record component.
      Returns:
      the value of the infoResponse record component
    • hashCode

      public int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public boolean equals(Object obj)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      obj - the object with which to compare
      Returns:
      true if this object is the same as the obj argument; false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object