2022-11-01 13:48:23 +01:00
|
|
|
package io.gitlab.jfronny.gson.compile.processor.adapter.impl;
|
|
|
|
|
|
|
|
import com.squareup.javapoet.TypeName;
|
|
|
|
import io.gitlab.jfronny.gson.compile.processor.SerializableClass;
|
|
|
|
import io.gitlab.jfronny.gson.compile.processor.adapter.AdapterAdapter;
|
|
|
|
|
|
|
|
public class OtherSerializableAdapter extends AdapterAdapter<OtherSerializableAdapter.Hydrated> {
|
|
|
|
@Override
|
|
|
|
public Hydrated instantiate() {
|
|
|
|
return new Hydrated();
|
|
|
|
}
|
|
|
|
|
|
|
|
public class Hydrated extends AdapterAdapter<Hydrated>.Hydrated {
|
|
|
|
private String adapter;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean applies() {
|
|
|
|
return adapter != null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected String createAdapter(String name) {
|
|
|
|
return adapter;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void afterHydrate() {
|
|
|
|
for (SerializableClass adapter : other) {
|
2023-01-21 15:01:54 +01:00
|
|
|
if (TypeName.get(adapter.classElement().asType()).equals(typeName)) {
|
2022-11-01 13:48:23 +01:00
|
|
|
// Use self-made adapter
|
2023-01-21 15:01:54 +01:00
|
|
|
this.adapter = adapter.generatedClassName().toString();
|
2022-11-01 13:48:23 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|