/** * Copyright (C) 2007 - 2016 52°North Initiative for Geospatial Open Source * Software GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.n52.wps.io.data; import java.util.Enumeration; import java.util.HashMap; import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.n52.wps.io.IOHandler; public final class GenericFileDataConstants { private static Logger LOGGER = LoggerFactory.getLogger(GenericFileDataConstants.class); public static final String MIME_TYPE_ZIPPED_SHP = IOHandler.MIME_TYPE_ZIPPED_SHP; public static final String MIME_TYPE_SHP = "application/shp"; public static final String MIME_TYPE_HDF = "application/img"; public static final String MIME_TYPE_GEOTIFF = "application/geotiff"; public static final String MIME_TYPE_TIFF = "image/tiff"; public static final String MIME_TYPE_DBASE = "application/dbase"; public static final String MIME_TYPE_REMAPFILE = "application/remap"; public static final String MIME_TYPE_PLAIN_TEXT = "text/plain"; public static final String MIME_TYPE_TEXT_XML = "text/xml"; public static final String MIME_TYPE_IMAGE_GEOTIFF = "image/geotiff";//TODO: this could not work due to geotiffparser... public static final String MIME_TYPE_X_GEOTIFF = "application/x-geotiff"; public static final String MIME_TYPE_IMAGE_PNG= "image/png"; public static final String MIME_TYPE_IMAGE_GIF = "image/gif"; public static final String MIME_TYPE_IMAGE_JPEG = "image/jpeg"; public static final String MIME_TYPE_X_ERDAS_HFA = "application/x-erdas-hfa"; public static final String MIME_TYPE_NETCDF = "application/netcdf"; public static final String MIME_TYPE_X_NETCDF = "application/x-netcdf"; public static final String MIME_TYPE_DGN = "application/dgn"; public static final String MIME_TYPE_KML = "application/vnd.google-earth.kml+xml"; public static final String MIME_TYPE_HDF4EOS = "application/hdf4-eos"; public static final String MIME_TYPE_GML200 = "text/xml; subtype=gml/2.0.0"; public static final String MIME_TYPE_GML211 = "text/xml; subtype=gml/2.1.1"; public static final String MIME_TYPE_GML212 = "text/xml; subtype=gml/2.1.2"; public static final String MIME_TYPE_GML2121 = "text/xml; subtype=gml/2.1.2.1"; public static final String MIME_TYPE_GML300 = "text/xml; subtype=gml/3.0.0"; public static final String MIME_TYPE_GML301 = "text/xml; subtype=gml/3.0.1"; public static final String MIME_TYPE_GML310 = "text/xml; subtype=gml/3.1.0"; public static final String MIME_TYPE_GML311 = "text/xml; subtype=gml/3.1.1"; public static final String MIME_TYPE_GML321 = "text/xml; subtype=gml/3.2.1"; private static final String[] additionalSHPFileItems = {"shx", "dbf", "prj", "sbn", "sbx", "shp.xml"}; private static final String[] additionalDBFFileItems = {"dbf.xml"}; // e.g. ArcGIS backend returns shape and a metadata xml file (e.g. process pointdistance) private static HashMap<String, String> lut; public static final HashMap<String, String> mimeTypeFileTypeLUT(){ if (lut == null) { lut = new HashMap<String, String>(); Properties ioProperties = new Properties(); try { ioProperties.load(GenericFileDataConstants.class.getResourceAsStream("/org/n52/wps/io/io.properties")); Enumeration<Object> en = ioProperties.keys(); while (en.hasMoreElements()) { String type = (String) en.nextElement(); lut.put(type, ioProperties.getProperty(type)); } } catch (Exception e) { LOGGER.error("Exception while setting up Look up table.", e); } } return lut; } public static final String[] getMimeTypes (){ return mimeTypeFileTypeLUT().keySet().toArray(new String[0]); } public static final String[] getIncludeFilesByMimeType(String mimeType){ String[] returnValue = null; if (mimeType != null && mimeType.equalsIgnoreCase("application/x-zipped-shp")){ returnValue = additionalSHPFileItems; } if (mimeType != null && mimeType.equalsIgnoreCase("application/dbase")){ returnValue = additionalDBFFileItems; } return returnValue; } }