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}