@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()); } } }