public static ForceDeleteAdminRequest readFrom(DataInputStream stream, AdminRequest adminRequest,
      StoreKeyFactory factory) throws IOException {
    short versionId = stream.readShort();
    if (versionId != VERSION_1) {
      throw new IllegalStateException("Unrecognized version for ForceDeleteAdminRequest: " + versionId);
    }
    StoreKey storeKey = factory.getStoreKey(stream);
    short lifeVersion = stream.readShort();
    return new ForceDeleteAdminRequest(storeKey, lifeVersion, adminRequest);
  }
Reads from a stream and constructs a {@link ForceDeleteAdminRequest}.
@param stream the stream to read from
@param adminRequest the {@link AdminRequest} that contains some necessary headers.
@param factory the {@link StoreKeyFactory} to construct a {@link StoreKey} from stream.
@return the {@link ForceDeleteAdminRequest} constructed from the the {@code stream}.
@throws IOException if there is any problem reading from the stream.
ambry-protocol/src/main/java/com/github/ambry/protocol/ForceDeleteAdminRequest.java