/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package edu.harvard.iq.dataverse.api; //import java.io.ByteArrayOutputStream; import edu.harvard.iq.dataverse.DataverseRequestServiceBean; import edu.harvard.iq.dataverse.EjbDataverseEngine; import edu.harvard.iq.dataverse.GuestbookResponse; import java.util.List; import edu.harvard.iq.dataverse.dataaccess.OptionalAccessService; /** * * @author Leonid Andreev */ public class DownloadInstance { /* private ByteArrayOutputStream outStream = null; public ByteArrayOutputStream getOutStream() { return outStream; } public void setOutStream(ByteArrayOutputStream outStream) { this.outStream = outStream; }*/ private List<Object> extraArguments = null; public List<Object> getExtraArguments() { return extraArguments; } public void setExtraArguments(List<Object> extraArguments) { this.extraArguments = extraArguments; } private DownloadInfo downloadInfo = null; private String conversionParam = null; private String conversionParamValue = null; private EjbDataverseEngine command; private DataverseRequestServiceBean dataverseRequestService; private GuestbookResponse gbr; public DownloadInstance() { } public DownloadInstance(DownloadInfo info) { this.downloadInfo = info; } public DownloadInfo getDownloadInfo() { return downloadInfo; } public void setDownloadInfo(DownloadInfo info) { this.downloadInfo = info; } public String getConversionParam() { return conversionParam; } public void setConversionParam(String param) { this.conversionParam = param; } public String getConversionParamValue() { return conversionParamValue; } public void setConversionParamValue(String paramValue) { this.conversionParamValue = paramValue; } // Move this method into the DownloadInfo instead -- ? public Boolean isDownloadServiceSupported(String serviceArg, String serviceArgValue) { if (downloadInfo == null || serviceArg == null) { return false; } List<OptionalAccessService> servicesAvailable = downloadInfo.getServicesAvailable(); for (OptionalAccessService dataService : servicesAvailable) { if (dataService != null) { // Special case for the subsetting parameter (variables=<LIST>): if (serviceArg.equals("variables")) { if ("subset".equals(dataService.getServiceName())) { conversionParam = "subset"; conversionParamValue = serviceArgValue; return true; } } else if ("imageThumb".equals(serviceArg)) { if ("true".equals(serviceArgValue)) { this.conversionParam = serviceArg; this.conversionParamValue = ""; } else { this.conversionParam = serviceArg; this.conversionParamValue = serviceArgValue; } return true; } String argValuePair = serviceArg + "=" + serviceArgValue; if (argValuePair.startsWith(dataService.getServiceArguments())) { conversionParam = serviceArg; conversionParamValue = serviceArgValue; return true; } //} } } return false; } public String getServiceFormatType(String serviceArg, String serviceArgValue) { if (downloadInfo == null || serviceArg == null) { return null; } List<OptionalAccessService> servicesAvailable = downloadInfo.getServicesAvailable(); for (OptionalAccessService dataService : servicesAvailable) { if (dataService != null) { // Special case for the subsetting parameter (variables=<LIST>): if (serviceArg.equals("variables")) { if ("subset".equals(dataService.getServiceName())) { conversionParam = "subset"; conversionParamValue = serviceArgValue; return dataService.getMimeType(); } } else if (serviceArg.equals("imageThumb")) { return "image/png"; } else { String argValuePair = serviceArg + "=" + serviceArgValue; if (argValuePair.equals(dataService.getServiceArguments())) { conversionParam = serviceArg; conversionParamValue = serviceArgValue; return dataService.getMimeType(); } } } } return null; } public EjbDataverseEngine getCommand() { return command; } public void setCommand(EjbDataverseEngine command) { this.command = command; } public GuestbookResponse getGbr() { return gbr; } public void setGbr(GuestbookResponse gbr) { this.gbr = gbr; } public DataverseRequestServiceBean getDataverseRequestService() { return dataverseRequestService; } public void setDataverseRequestService(DataverseRequestServiceBean dataverseRequestService) { this.dataverseRequestService = dataverseRequestService; } }