package design.persistence.importexport; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.json.JsonMapper; import design.persistence.Serializers; import java.io.File; import java.io.IOException; public class JSONHandler implements DataHandler { private final DataSource dataSource; private final ObjectMapper jsonMapper = new JsonMapper(); public JSONHandler(DataSource dataSource) { this.dataSource = dataSource; Serializers.configureMapper(jsonMapper); jsonMapper.registerModule(dataSource.getJacksonModule()); } @Override public void importData(File file) throws IOException { Object data = jsonMapper.readValue(file, dataSource.getTargetClass()); dataSource.importData(data); } @Override public void exportData(File file) throws IOException{ Object data = dataSource.exportData(); jsonMapper.writer(new Serializers.CustomPrettyPrinter()) .writeValue(file, data); } }