@SuppressWarnings("unchecked") protected Codec<Record> getRecordCodec(String codec) { if (codec == null) { return NO_CODEC; } switch (codec) { case "java": return new SerializableCodec<>(); case "avro": return new AvroMessageCodec<>(Record.class); case "avroJson": return new AvroJsonCodec<>(Record.class); case "avroBinary": return new AvroBinaryCodec<>(Record.class); default: throw new IllegalArgumentException("Unknown codec: " + codec); } }
@Override public <T> Codec<T> newCodec(Class<T> objectClass) { switch (encoding) { case "json": return new AvroJsonCodec<>(objectClass); case "binary": return new AvroBinaryCodec<>(objectClass); case "confluent": return new AvroConfluentCodec<>(objectClass, schemaRegistryUrls); case "message": default: return new AvroMessageCodec<>(objectClass, Framework.getService(AvroService.class).getSchemaStore()); } } }