001package io.avaje.jsonb.spi;
002
003import io.avaje.jsonb.JsonAdapter;
004
005import java.lang.invoke.MethodHandle;
006
007public interface ViewBuilder {
008
009  void beginObject(String name, MethodHandle methodHandle);
010
011  MethodHandle field(Class<?> cls, String name);
012
013  void add(String name, JsonAdapter<?> adapter, MethodHandle methodHandle);
014
015  void addArray(String name, JsonAdapter<?> adapter, MethodHandle methodHandle);
016
017  void endObject();
018
019  MethodHandle method(Class<?> cls, String methodName, Class<?> returnType);
020}