// Path: faostat-api-core/src/main/java/org/fao/faostat/api/core/beans/MetadataBean.java
// public class MetadataBean {
// 
//     private DATASOURCE datasource;
// 
//     private String apiKey;
// 
//     private String clientKey;
// 
//     private OUTPUTTYPE outputType;
// 
//     private List<String> blackList;
// 
//     private List<String> whiteList;
// 
//     private Map<String, Object> procedureParameters;
// 
//     private List<Map<String, Object>> dsd;
// 
//     private Boolean pivot = false;
// 
//     private Boolean full = false;
// 
//     private Long processingTime;
// 
//     public MetadataBean() {
//         this.setDatasource(DATASOURCE.PRODUCTION);
//         this.setApiKey(null);
//         this.setClientKey(null);
//         this.setOutputType(OUTPUTTYPE.OBJECTS);
//         this.setProcedureParameters(new HashMap<String, Object>());
//         this.setDsd(new ArrayList<Map<String, Object>>());
//         this.setClientKey(null);
//     }
// 
//     public MetadataBean(String datasource, String apiKey, String clientKey, String outputType) {
//         this.storeUserOptions(datasource, apiKey, clientKey, outputType);
//     }
// 
//     public void storeUserOptions(String datasource, String apiKey, String clientKey, String outputType) {
//         this.setDatasource(datasource != null ? DATASOURCE.valueOf(datasource.toUpperCase()) : DATASOURCE.PRODUCTION);
//         this.setApiKey(apiKey != null ? apiKey : this.getApiKey());
//         this.setClientKey(clientKey != null ? clientKey : this.getClientKey());
//         this.setOutputType(outputType != null ? OUTPUTTYPE.valueOf(outputType.toUpperCase()) : OUTPUTTYPE.OBJECTS);
//         this.setProcedureParameters(new HashMap<String, Object>());
//         this.setDsd(new ArrayList<Map<String, Object>>());
//     }
// 
//     public List<String> getBlackList() {
//         return blackList;
//     }
// 
//     public void setBlackList(List<String> blackList) {
//         this.blackList = blackList;
//     }
// 
//     public List<String> getWhiteList() {
//         return whiteList;
//     }
// 
//     public void setWhiteList(List<String> whiteList) {
//         this.whiteList = whiteList;
//     }
// 
//     public void addParameter(String key, Object value) {
//         this.getProcedureParameters().put(key, value);
//     }
// 
//     public void addParameters(Map<String, Object> params) {
//         this.getProcedureParameters().putAll(params);
//     }
// 
//     public DATASOURCE getDatasource() {
//         return datasource;
//     }
// 
//     public void setDatasource(DATASOURCE datasource) {
//         this.datasource = datasource;
//     }
// 
//     public String getApiKey() {
//         return apiKey;
//     }
// 
//     public void setApiKey(String apiKey) {
//         this.apiKey = apiKey;
//     }
// 
//     public String getClientKey() {
//         return clientKey;
//     }
// 
//     public void setClientKey(String clientKey) {
//         this.clientKey = clientKey;
//     }
// 
//     public OUTPUTTYPE getOutputType() {
//         return outputType;
//     }
// 
//     public void setOutputType(OUTPUTTYPE outputType) {
//         this.outputType = outputType;
//     }
// 
//     public Map<String, Object> getProcedureParameters() {
//         return procedureParameters;
//     }
// 
//     public void setProcedureParameters(Map<String, Object> procedureParameters) {
//         this.procedureParameters = procedureParameters;
//     }
// 
//     public Boolean getPivot() {
//         return pivot;
//     }
// 
//     public void setPivot(Boolean pivot) {
//         this.pivot = pivot;
//     }
// 
//     public List<Map<String, Object>> getDsd() {
//         return dsd;
//     }
// 
//     public void setDsd(List<Map<String, Object>> dsd) {
//         this.dsd = dsd;
//     }
// 
//     public Long getProcessingTime() {
//         return processingTime;
//     }
// 
//     public void setProcessingTime(Long processingTime) {
//         this.processingTime = processingTime;
//     }
// 
//     public Boolean getFull() { return full; }
// 
//     public void setFull(Boolean full) {
//         if (full != null ) {
//             this.full = full;
//         }
//     }
// 
//     @Override
//     public String toString() {
//         return "MetadataBean{" +
//                 "datasource='" + datasource + '\'' +
//                 ", apiKey='" + apiKey + '\'' +
//                 ", clientKey='" + clientKey + '\'' +
//                 ", outputType=" + outputType +
//                 ", blackList=" + blackList +
//                 ", whiteList=" + whiteList +
//                 ", procedureParameters=" + procedureParameters +
//                 ", pivot=" + pivot +
//                 ", full=" + full +
//                 ", dsd=" + dsd +
//                 ", processingTime=" + processingTime +
//                 '}';
//     }
// 
// }
// 
// Path: faostat-api-core/src/main/java/org/fao/faostat/api/core/constants/OUTPUTTYPE.java
// public enum OUTPUTTYPE {
// 
//     ARRAYS, CSV, JSON, OBJECTS;
// 
// }


import org.fao.faostat.api.core.beans.MetadataBean;
import org.fao.faostat.api.core.constants.OUTPUTTYPE;
import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
package org.fao.faostat.api.web.utils;



public class FAOSTATAPIUtils {

    public static String outputType(MetadataBean metadataBean) {
// Path: faostat-api-core/src/main/java/org/fao/faostat/api/core/beans/MetadataBean.java
// public class MetadataBean {
// 
//     private DATASOURCE datasource;
// 
//     private String apiKey;
// 
//     private String clientKey;
// 
//     private OUTPUTTYPE outputType;
// 
//     private List<String> blackList;
// 
//     private List<String> whiteList;
// 
//     private Map<String, Object> procedureParameters;
// 
//     private List<Map<String, Object>> dsd;
// 
//     private Boolean pivot = false;
// 
//     private Boolean full = false;
// 
//     private Long processingTime;
// 
//     public MetadataBean() {
//         this.setDatasource(DATASOURCE.PRODUCTION);
//         this.setApiKey(null);
//         this.setClientKey(null);
//         this.setOutputType(OUTPUTTYPE.OBJECTS);
//         this.setProcedureParameters(new HashMap<String, Object>());
//         this.setDsd(new ArrayList<Map<String, Object>>());
//         this.setClientKey(null);
//     }
// 
//     public MetadataBean(String datasource, String apiKey, String clientKey, String outputType) {
//         this.storeUserOptions(datasource, apiKey, clientKey, outputType);
//     }
// 
//     public void storeUserOptions(String datasource, String apiKey, String clientKey, String outputType) {
//         this.setDatasource(datasource != null ? DATASOURCE.valueOf(datasource.toUpperCase()) : DATASOURCE.PRODUCTION);
//         this.setApiKey(apiKey != null ? apiKey : this.getApiKey());
//         this.setClientKey(clientKey != null ? clientKey : this.getClientKey());
//         this.setOutputType(outputType != null ? OUTPUTTYPE.valueOf(outputType.toUpperCase()) : OUTPUTTYPE.OBJECTS);
//         this.setProcedureParameters(new HashMap<String, Object>());
//         this.setDsd(new ArrayList<Map<String, Object>>());
//     }
// 
//     public List<String> getBlackList() {
//         return blackList;
//     }
// 
//     public void setBlackList(List<String> blackList) {
//         this.blackList = blackList;
//     }
// 
//     public List<String> getWhiteList() {
//         return whiteList;
//     }
// 
//     public void setWhiteList(List<String> whiteList) {
//         this.whiteList = whiteList;
//     }
// 
//     public void addParameter(String key, Object value) {
//         this.getProcedureParameters().put(key, value);
//     }
// 
//     public void addParameters(Map<String, Object> params) {
//         this.getProcedureParameters().putAll(params);
//     }
// 
//     public DATASOURCE getDatasource() {
//         return datasource;
//     }
// 
//     public void setDatasource(DATASOURCE datasource) {
//         this.datasource = datasource;
//     }
// 
//     public String getApiKey() {
//         return apiKey;
//     }
// 
//     public void setApiKey(String apiKey) {
//         this.apiKey = apiKey;
//     }
// 
//     public String getClientKey() {
//         return clientKey;
//     }
// 
//     public void setClientKey(String clientKey) {
//         this.clientKey = clientKey;
//     }
// 
//     public OUTPUTTYPE getOutputType() {
//         return outputType;
//     }
// 
//     public void setOutputType(OUTPUTTYPE outputType) {
//         this.outputType = outputType;
//     }
// 
//     public Map<String, Object> getProcedureParameters() {
//         return procedureParameters;
//     }
// 
//     public void setProcedureParameters(Map<String, Object> procedureParameters) {
//         this.procedureParameters = procedureParameters;
//     }
// 
//     public Boolean getPivot() {
//         return pivot;
//     }
// 
//     public void setPivot(Boolean pivot) {
//         this.pivot = pivot;
//     }
// 
//     public List<Map<String, Object>> getDsd() {
//         return dsd;
//     }
// 
//     public void setDsd(List<Map<String, Object>> dsd) {
//         this.dsd = dsd;
//     }
// 
//     public Long getProcessingTime() {
//         return processingTime;
//     }
// 
//     public void setProcessingTime(Long processingTime) {
//         this.processingTime = processingTime;
//     }
// 
//     public Boolean getFull() { return full; }
// 
//     public void setFull(Boolean full) {
//         if (full != null ) {
//             this.full = full;
//         }
//     }
// 
//     @Override
//     public String toString() {
//         return "MetadataBean{" +
//                 "datasource='" + datasource + '\'' +
//                 ", apiKey='" + apiKey + '\'' +
//                 ", clientKey='" + clientKey + '\'' +
//                 ", outputType=" + outputType +
//                 ", blackList=" + blackList +
//                 ", whiteList=" + whiteList +
//                 ", procedureParameters=" + procedureParameters +
//                 ", pivot=" + pivot +
//                 ", full=" + full +
//                 ", dsd=" + dsd +
//                 ", processingTime=" + processingTime +
//                 '}';
//     }
// 
// }
// 
// Path: faostat-api-core/src/main/java/org/fao/faostat/api/core/constants/OUTPUTTYPE.java
// public enum OUTPUTTYPE {
// 
//     ARRAYS, CSV, JSON, OBJECTS;
// 
// }


// Path: faostat-api-web/src/main/java/org/fao/faostat/api/web/utils/FAOSTATAPIUtils.java
import org.fao.faostat.api.core.beans.MetadataBean;
import org.fao.faostat.api.core.constants.OUTPUTTYPE;
import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

package org.fao.faostat.api.web.utils;



public class FAOSTATAPIUtils {

    public static String outputType(MetadataBean metadataBean) {
        if (metadataBean.getOutputType().equals(OUTPUTTYPE.CSV)) {