package org.reflections.serializers;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.reflections.Reflections;
import org.reflections.util.Utils;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.nio.file.Files;
serialization of Reflections to json
an example of produced json:
{"store":{"storeMap":
{"org.reflections.scanners.TypeAnnotationsScanner":{
"org.reflections.TestModel$AC1":["org.reflections.TestModel$C1"],
"org.reflections.TestModel$AC2":["org.reflections.TestModel$I3",
...
/** serialization of Reflections to json
*
* <p>an example of produced json:
* <pre>
* {"store":{"storeMap":
* {"org.reflections.scanners.TypeAnnotationsScanner":{
* "org.reflections.TestModel$AC1":["org.reflections.TestModel$C1"],
* "org.reflections.TestModel$AC2":["org.reflections.TestModel$I3",
* ...
* </pre>
* */
public class JsonSerializer implements Serializer {
private Gson gson;
public Reflections read(InputStream inputStream) {
return getGson().fromJson(new InputStreamReader(inputStream), Reflections.class);
}
public File save(Reflections reflections, String filename) {
try {
File file = Utils.prepareFile(filename);
Files.write(file.toPath(), toString(reflections).getBytes(Charset.defaultCharset()));
return file;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public String toString(Reflections reflections) {
return getGson().toJson(reflections);
}
private Gson getGson() {
if (gson == null) {
gson = new GsonBuilder().setPrettyPrinting().create();
}
return gson;
}
}