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; } }