@Test public void testEncodingArrayPrimitives() throws IOException { ObjectEncoder<DummyClass> objectEncoder = (o, ctx) -> { ctx.add("String", new String[] {"string1", "string2"}) .add("int", new int[] {1, 2}) .add("long", new long[] {3L, 4L}) .add("double", new double[] {1.1d, 2.2d}) .add("boolean", new boolean[] {true, false}) .add("null", new String[] {null, null}); }; String result = new JsonDataEncoderBuilder() .registerEncoder(DummyClass.class, objectEncoder) .build() .encode(DummyClass.INSTANCE); assertThat(result) .isEqualTo( String.format( "{\"String\":%s,\"int\":%s,\"long\":%s,\"double\":%s,\"boolean\":%s,\"null\":%s}", "[\"string1\",\"string2\"]", "[1,2]", "[3,4]", "[1.1,2.2]", "[true,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);  }