/** * */ package tr.com.srdc.mdr.web.html.api.exporter; import java.util.HashMap; import java.util.Map; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Request; import javax.ws.rs.core.Response; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import tr.com.srdc.mdr.core.impl.Repository; import tr.com.srdc.mdr.core.impl.RepositoryManager; import tr.com.srdc.mdr.web.html.util.WebUtil; import tr.com.srdc.mdr.web.rest.api.util.GraphStream; import com.hp.hpl.jena.ontology.OntModel; /** * @author Alper * */ @Path("/exporter/{exporterType}") public class ExportService { private static final Logger logger = LoggerFactory .getLogger(ExportService.class); private final GraphStream graphStream = new GraphStream(); private final Map<String, String> fileNames = new HashMap<String, String>() { private static final long serialVersionUID = 1L; { put(MediaType.TEXT_PLAIN, "export.rdf"); put(WebUtil.MEDIA_TYPE_APPLICATION_NTRIPLE, "export.nt"); put(WebUtil.MEDIA_TYPE_APPLICATION_RDFJSON, "export.rj"); put(WebUtil.MEDIA_TYPE_APPLICATION_RDFXML, "export.rdf"); put(WebUtil.MEDIA_TYPE_APPLICATION_RDFXML_ABBREV, "export.rdf"); put(WebUtil.MEDIA_TYPE_TEXT_N3, "export.n3"); put(WebUtil.MEDIA_TYPE_TEXT_TURTLE, "export.ttl"); } }; @GET public Response export(@Context Request request, @PathParam("exporterType") String exporterType) { logger.info("Exporting database"); Repository repository = RepositoryManager.getInstance().getRepository(); OntModel ontModel = repository.getMDRDatabase().getOntModel(); graphStream.setModel(ontModel); graphStream.setLanguage(WebUtil.getSerializationLanguage(exporterType)); logger.info("Database is exported"); String fileName = fileNames.get(exporterType); if (fileName == null) { fileName = "export.rdf"; } return Response .ok(graphStream) .header("Content-Disposition", "attachment; filename=" + fileName).build(); } }