Description
I have a package "com.test"
It has 2 classes:
public class Employee {
|
|
|
private String name;
|
|
|
private String id;
|
|
|
private Long age;
|
|
|
private Currency salaryCurrency;
|
|
|
private Double pay;
|
|
|
private isActive;
|
|
|
private Type type = Type.CONTRACT;
|
|
|
//getter setters
|
|
|
}
|
public enum Type {
|
|
|
CONTRACT,PERMANENT;
|
|
|
}
|
When I try to encode I get no codec found for Type.
PS i created custom CurrencyCodec
|
|
Employee emp = new Employee(); |
emp.setType(Type.PERMANENT);
|
emp.setAge(30); |
emp.setName("TestUser"); |
PojoCodecProvider builder = PojoCodecProvider.builder().conventions(Conventions
|
.DEFAULT_CONVENTIONS)
|
.automatic(false).register("com.test").build(); |
CodecRegistry pojoCodecRegistry = CodecRegistries.fromRegistries(fromProviders(builder),
|
fromCodecs(new LongCodec(),new CurrencyCodec(), |
new StringCodec(), new DateCodec(), new BooleanCodec(), new DoubleCodec())); |
emp.setId(UUID.randomUUID().toString());
|
Codec<Employee> st = builder.get(Employee.class,pojoCodecRegistry); |
BsonDocument doc = new BsonDocument(); |
st.encode(new BsonDocumentWriter(doc),emp, EncoderContext.builder().isEncodingCollectibleDocument(true).build |
());
|