protected Struct parseResponse(short version, ByteBuffer buffer, short fallbackVersion) { int bufferPosition = buffer.position(); try { return responseSchema(version).read(buffer); } catch (SchemaException e) { if (version != fallbackVersion) { buffer.position(bufferPosition); return responseSchema(fallbackVersion).read(buffer); } else throw e; } }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.CREATE_PARTITIONS.responseSchema(version)); List<Struct> topicErrors = new ArrayList<>(errors.size()); for (Map.Entry<String, ApiError> error : errors.entrySet()) { Struct errorStruct = struct.instance(TOPIC_ERRORS_KEY_NAME); errorStruct.set(TOPIC_NAME, error.getKey()); error.getValue().write(errorStruct); topicErrors.add(errorStruct); } struct.set(THROTTLE_TIME_MS, throttleTimeMs); struct.set(TOPIC_ERRORS_KEY_NAME, topicErrors.toArray(new Object[topicErrors.size()])); return struct; }
public static DeleteAclsResponse parse(ByteBuffer buffer, short version) { return new DeleteAclsResponse(ApiKeys.DELETE_ACLS.responseSchema(version).read(buffer)); }
public static ElectPreferredLeadersResponse parse(ByteBuffer buffer, short version) { return new ElectPreferredLeadersResponse( ApiKeys.ELECT_PREFERRED_LEADERS.responseSchema(version).read(buffer), version); }
public static ProduceResponse parse(ByteBuffer buffer, short version) { return new ProduceResponse(ApiKeys.PRODUCE.responseSchema(version).read(buffer)); }
public static CreateAclsResponse parse(ByteBuffer buffer, short version) { return new CreateAclsResponse(ApiKeys.CREATE_ACLS.responseSchema(version).read(buffer)); }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.DELETE_GROUPS.responseSchema(version)); struct.setIfExists(THROTTLE_TIME_MS, throttleTimeMs); List<Struct> groupErrorCodeStructs = new ArrayList<>(errors.size()); for (Map.Entry<String, Errors> groupError : errors.entrySet()) { Struct groupErrorCodeStruct = struct.instance(GROUP_ERROR_CODES_KEY_NAME); groupErrorCodeStruct.set(GROUP_ID, groupError.getKey()); groupErrorCodeStruct.set(ERROR_CODE, groupError.getValue().code()); groupErrorCodeStructs.add(groupErrorCodeStruct); } struct.set(GROUP_ERROR_CODES_KEY_NAME, groupErrorCodeStructs.toArray()); return struct; }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.CREATE_ACLS.responseSchema(version)); struct.set(THROTTLE_TIME_MS, throttleTimeMs); List<Struct> responseStructs = new ArrayList<>(); for (AclCreationResponse response : aclCreationResponses) { Struct responseStruct = struct.instance(CREATION_RESPONSES_KEY_NAME); response.error.write(responseStruct); responseStructs.add(responseStruct); } struct.set(CREATION_RESPONSES_KEY_NAME, responseStructs.toArray()); return struct; }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.UPDATE_METADATA.responseSchema(version)); struct.set(ERROR_CODE, error.code()); return struct; } }
@Override public Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.SASL_HANDSHAKE.responseSchema(version)); struct.set(ERROR_CODE, error.code()); struct.set(ENABLED_MECHANISMS_KEY_NAME, enabledMechanisms.toArray()); return struct; }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.ADD_OFFSETS_TO_TXN.responseSchema(version)); struct.set(THROTTLE_TIME_MS, throttleTimeMs); struct.set(ERROR_CODE, error.code()); return struct; }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.HEARTBEAT.responseSchema(version)); struct.setIfExists(THROTTLE_TIME_MS, throttleTimeMs); struct.set(ERROR_CODE, error.code()); return struct; }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.END_TXN.responseSchema(version)); struct.set(THROTTLE_TIME_MS, throttleTimeMs); struct.set(ERROR_CODE, error.code()); return struct; }
@Override public Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.LEAVE_GROUP.responseSchema(version)); struct.setIfExists(THROTTLE_TIME_MS, throttleTimeMs); struct.set(ERROR_CODE, error.code()); return struct; }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.EXPIRE_DELEGATION_TOKEN.responseSchema(version)); struct.set(ERROR_CODE, error.code()); struct.set(EXPIRY_TIMESTAMP_KEY_NAME, expiryTimestamp); struct.setIfExists(THROTTLE_TIME_MS, throttleTimeMs); return struct; }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.RENEW_DELEGATION_TOKEN.responseSchema(version)); struct.set(ERROR_CODE, error.code()); struct.set(EXPIRY_TIMESTAMP_KEY_NAME, expiryTimestamp); struct.setIfExists(THROTTLE_TIME_MS, throttleTimeMs); return struct; }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.SYNC_GROUP.responseSchema(version)); struct.setIfExists(THROTTLE_TIME_MS, throttleTimeMs); struct.set(ERROR_CODE, error.code()); struct.set(MEMBER_ASSIGNMENT_KEY_NAME, memberState); return struct; }
@Override public Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.SASL_AUTHENTICATE.responseSchema(version)); struct.set(ERROR_CODE, error.code()); struct.set(ERROR_MESSAGE, errorMessage); struct.set(SASL_AUTH_BYTES_KEY_NAME, saslAuthBytes); if (version > 0) struct.set(SESSION_LIFETIME_MS, sessionLifetimeMs); return struct; }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.INIT_PRODUCER_ID.responseSchema(version)); struct.set(THROTTLE_TIME_MS, throttleTimeMs); struct.set(PRODUCER_ID, producerId); struct.set(PRODUCER_EPOCH, epoch); struct.set(ERROR_CODE, error.code()); return struct; }
@Override protected Struct toStruct(short version) { Struct struct = new Struct(ApiKeys.FIND_COORDINATOR.responseSchema(version)); struct.setIfExists(THROTTLE_TIME_MS, throttleTimeMs); struct.set(ERROR_CODE, error.code()); struct.setIfExists(ERROR_MESSAGE, errorMessage); Struct coordinator = struct.instance(COORDINATOR_KEY_NAME); coordinator.set(NODE_ID_KEY_NAME, node.id()); coordinator.set(HOST_KEY_NAME, node.host()); coordinator.set(PORT_KEY_NAME, node.port()); struct.set(COORDINATOR_KEY_NAME, coordinator); return struct; }