geoportal-data-viewer-app/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/gis/MapServerRecognize.java

103 lines
2.1 KiB
Java

/**
*
*/
package org.gcube.portlets.user.geoportaldataviewer.server.gis;
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
import com.google.gwt.core.shared.GWT;
/**
* The Class MapServerRecognize.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* @Aug 29, 2014
*
* THIS CLASS DISCRIMINATES BETWEEN GEOSERVER AND MAPSERVER
* ACCORDING TO THE VALUE OF LAYER URL
*/
public class MapServerRecognize {
/**
* The Enum SERVERTYPE.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
*
* Oct 29, 2020
*/
public static enum SERVERTYPE{GEOSEVER, MAPSERVER};
/**
* Recongnize.
*
* @param l the l
* @return the servertype
*/
public static SERVERTYPE recongnize(LayerItem l){
if(l==null)
return null;
return recongnize(l.getUrl());
}
/**
* Recongnize.
*
* @param baseServerUrl the base server url
* @return the servertype
*/
public static SERVERTYPE recongnize(String baseServerUrl){
if(baseServerUrl==null || baseServerUrl.isEmpty())
return null;
//CASE MAP SERVER
if(baseServerUrl.contains(GisMakers.WXS)){
GWT.log("wms url contains 'wxs' returning "+SERVERTYPE.MAPSERVER);
return SERVERTYPE.MAPSERVER;
}else{
GWT.log("wms url doesn't contains 'wxs' returning "+SERVERTYPE.GEOSEVER);
//CASE GEOSEVER
return SERVERTYPE.GEOSEVER;
}
}
/**
* Output format recognize.
*
* @param serverType the server type
* @param output the output
* @return the string
*/
public static String outputFormatRecognize(SERVERTYPE serverType, String output){
if(output==null || output.isEmpty())
return output;
if(serverType==null)
return output;
switch (serverType) {
case GEOSEVER:
if(output.contains(GisMakers.JSON))
return "json";
else if(output.contains(GisMakers.CSV))
return "csv";
break;
case MAPSERVER:
if(output.contains(GisMakers.JSON))
return "application/json;%20subtype=geojson";
else if(output.contains(GisMakers.CSV))
return "csv";
break;
}
return output;
}
}