package edu.harvard.iq.dataverse.export; import com.google.auto.service.AutoService; import edu.harvard.iq.dataverse.DatasetVersion; import edu.harvard.iq.dataverse.export.spi.Exporter; import edu.harvard.iq.dataverse.util.BundleUtil; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import javax.json.JsonObject; /** * * @author skraffmi */ @AutoService(Exporter.class) public class JSONExporter implements Exporter { @Override public String getProviderName() { return "dataverse_json"; } @Override public String getDisplayName() { return BundleUtil.getStringFromBundle("dataset.exportBtn.itemLabel.json") != null ? BundleUtil.getStringFromBundle("dataset.exportBtn.itemLabel.json") : "JSON"; } @Override public void exportDataset(DatasetVersion version, JsonObject json, OutputStream outputStream) throws ExportException { try{ outputStream.write(json.toString().getBytes("UTF8")); outputStream.flush(); } catch (Exception e){ throw new ExportException("Unknown exception caught during JSON export."); } } @Override public Boolean isXMLFormat() { return false; } @Override public Boolean isHarvestable() { return true; } @Override public Boolean isAvailableToUsers() { return true; } @Override public String getXMLNameSpace() throws ExportException { throw new ExportException ("JSONExporter: not an XML format."); } @Override public String getXMLSchemaLocation() throws ExportException { throw new ExportException ("JSONExporter: not an XML format."); } @Override public String getXMLSchemaVersion() throws ExportException { throw new ExportException ("JSONExporter: not an XML format."); } @Override public void setParam(String name, Object value) { // this exporter doesn't need/doesn't currently take any parameters } }