Gson - Configurando referência de objeto rapidamente usando InstanceCreator
Estou preso em um problema em que preciso definir a referência do meu objeto sendo analisado para seus objetos filhos durante a desserialização usandoGson
eInstanceCreator
.
Para representar o problema, a seguir é apresentada uma representação simples da estrutura das classes.
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;
}
}
Com essa estrutura, eu sou capaz de definirContext
noWorkshift
fornecendo umaInstanceCreator
para o meuGsonBuilder
, por exemplo:
Gson gson = new GsonBuilder()
.registerTypeAdapter(Workshift.class, new InstanceCreator<Workshift>() {
@Override
public Workshift createInstance(Type type) {
return new Workshift(context);
}
})
.create();
Eu sei, posso adicionar maisInstanceCreator
para o meuGsonBuilder
, mas não sei como fornecer uma referência do meuWorkshift
objeto em processo de análise (on-the-fly) paraVisit
objeto?
Qualquer ajuda seria apreciada!