Gson: configuración de referencia de objeto sobre la marcha utilizando InstanceCreator

Estoy atrapado en un problema en el que necesito establecer una referencia de mi objeto que se analiza a sus objetos secundarios durante la deserialización usandoGson yInstanceCreator.

Para representar el problema, la siguiente es la representación simple de la estructura de clases.

public class Workshift {
    private final transient Context context;
    private final Visit visit;

    public Workshift(Context context) {
        this.context = context;
        this.visit = new Visit(this);
    }
}

public class Visit {
    private final transient Workshift workshift;

    public Visit(Workshift ws) {
        this.workshift = ws;
    }
}

Con esta estructura, puedo establecerContext enWorkshift al proporcionar unInstanceCreator para miGsonBuilder, por ejemplo:

Gson gson = new GsonBuilder()
    .registerTypeAdapter(Workshift.class, new InstanceCreator<Workshift>() {
        @Override
        public Workshift createInstance(Type type) {
            return new Workshift(context);
        }
    })
    .create();

Lo sé, puedo agregar másInstanceCreator para miGsonBuilder, pero no estoy seguro de cómo proporcionar una referencia de miWorkshift objeto que se está analizando (sobre la marcha) paraVisit ¿objeto?

¡Cualquier ayuda sería apreciada!

Respuestas a la pregunta(2)

Su respuesta a la pregunta