@Test public void testEncodingEnum_withCustomEncoder() { ValueEncoder<MyEnum> encoder = (o, ctx) -> ctx.add(o.name().toLowerCase()); String result = new JsonDataEncoderBuilder() .registerEncoder(MyEnum.class, encoder) .build() .encode(new MyEnum[] {MyEnum.VALUE_1, MyEnum.VALUE_2}); assertThat(result).isEqualTo("[\"value_1\",\"value_2\"]"); }
@NonNull @Override public JsonValueObjectEncoderContext add(@NonNull String name, @Nullable Object o) throws IOException { if (ignoreNullValues) { return internalAddIgnoreNullValues(name, o); } return internalAdd(name, o); }
JsonValueObjectEncoderContext implements ObjectEncoderContext, ValueEncoderContext { @NonNull @Override public JsonValueObjectEncoderContext add(@NonNull String name, @Nullable Object o) throws IOException { if (ignoreNullValues) { return internalAddIgnoreNullValues(name, o); } return internalAdd(name, o); } }
JsonValueObjectEncoderContext implements ObjectEncoderContext, ValueEncoderContext { @NonNull @Override public JsonValueObjectEncoderContext add(@NonNull String name, @Nullable Object o) throws IOException { if (ignoreNullValues) { return internalAddIgnoreNullValues(name, o); } return internalAdd(name, o); } JsonValueObjectEncoderContext(
      @NonNull Writer writer,
      @NonNull Map<Class<?>, ObjectEncoder<?>> objectEncoders,
      @NonNull Map<Class<?>, ValueEncoder<?>> valueEncoders,
      ObjectEncoder<Object> fallbackEncoder,
      boolean ignoreNullValues); private  JsonValueObjectEncoderContext(JsonValueObjectEncoderContext anotherContext); }
JsonValueObjectEncoderContext implements ObjectEncoderContext, ValueEncoderContext { @NonNull @Override public JsonValueObjectEncoderContext add(@NonNull String name, @Nullable Object o) throws IOException { if (ignoreNullValues) { return internalAddIgnoreNullValues(name, o); } return internalAdd(name, o); } JsonValueObjectEncoderContext(
      @NonNull Writer writer,
      @NonNull Map<Class<?>, ObjectEncoder<?>> objectEncoders,
      @NonNull Map<Class<?>, ValueEncoder<?>> valueEncoders,
      ObjectEncoder<Object> fallbackEncoder,
      boolean ignoreNullValues); private  JsonValueObjectEncoderContext(JsonValueObjectEncoderContext anotherContext); @NonNull @Override JsonValueObjectEncoderContext add(@NonNull String name, @Nullable Object o); @NonNull @Override JsonValueObjectEncoderContext add(@NonNull String name, double value); @NonNull @Override JsonValueObjectEncoderContext add(@NonNull String name, int value); @NonNull @Override JsonValueObjectEncoderContext add(@NonNull String name, long value); @NonNull @Override JsonValueObjectEncoderContext add(@NonNull String name, boolean value); @NonNull @Override ObjectEncoderContext inline(@Nullable Object value); @NonNull @Override ObjectEncoderContext nested(@NonNull String name); @NonNull @Override JsonValueObjectEncoderContext add(@Nullable String value); @NonNull @Override JsonValueObjectEncoderContext add(double value); @NonNull @Override JsonValueObjectEncoderContext add(int value); @NonNull @Override JsonValueObjectEncoderContext add(long value); @NonNull @Override JsonValueObjectEncoderContext add(boolean value); @NonNull @Override JsonValueObjectEncoderContext add(@Nullable byte[] bytes); }
JsonValueObjectEncoderContext implements ObjectEncoderContext, ValueEncoderContext { @NonNull @Override public JsonValueObjectEncoderContext add(@NonNull String name, @Nullable Object o) throws IOException { if (ignoreNullValues) { return internalAddIgnoreNullValues(name, o); } return internalAdd(name, o); } JsonValueObjectEncoderContext(
      @NonNull Writer writer,
      @NonNull Map<Class<?>, ObjectEncoder<?>> objectEncoders,
      @NonNull Map<Class<?>, ValueEncoder<?>> valueEncoders,
      ObjectEncoder<Object> fallbackEncoder,
      boolean ignoreNullValues); private  JsonValueObjectEncoderContext(JsonValueObjectEncoderContext anotherContext); @NonNull @Override JsonValueObjectEncoderContext add(@NonNull String name, @Nullable Object o); @NonNull @Override JsonValueObjectEncoderContext add(@NonNull String name, double value); @NonNull @Override JsonValueObjectEncoderContext add(@NonNull String name, int value); @NonNull @Override JsonValueObjectEncoderContext add(@NonNull String name, long value); @NonNull @Override JsonValueObjectEncoderContext add(@NonNull String name, boolean value); @NonNull @Override ObjectEncoderContext inline(@Nullable Object value); @NonNull @Override ObjectEncoderContext nested(@NonNull String name); @NonNull @Override JsonValueObjectEncoderContext add(@Nullable String value); @NonNull @Override JsonValueObjectEncoderContext add(double value); @NonNull @Override JsonValueObjectEncoderContext add(int value); @NonNull @Override JsonValueObjectEncoderContext add(long value); @NonNull @Override JsonValueObjectEncoderContext add(boolean value); @NonNull @Override JsonValueObjectEncoderContext add(@Nullable byte[] bytes);  }