@Test public void testEncodingPrimitiveTypes() throws IOException { ObjectEncoder<DummyClass> objectEncoder = (o, ctx) -> { ctx.add("String", "string") .add("int", 2) .add("long", 42L) .add("double", 2.2d) .add("boolean", false) .add("null", null); }; String result = new JsonDataEncoderBuilder() .registerEncoder(DummyClass.class, objectEncoder) .build() .encode(DummyClass.INSTANCE); assertThat(result) .isEqualTo( "{\"String\":\"string\",\"int\":2,\"long\":42,\"double\":2.2,\"boolean\":false,\"null\":null}"); }
@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);  }