package org.gcube.portlets.user.geoportaldataviewer.server.util; /** * The Class URLUtil. * * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) * * Oct 29, 2020 */ public class URLParserUtil { /** * Gets the value of parameter. * * @param paramName the param name * @param url the url * @return the value of parameter */ public static String getValueOfParameter(String paramName, String url) { // logger.trace("finding: "+wmsParam +" into "+url); int index = url.toLowerCase().indexOf(paramName.toLowerCase()+"="); //ADDING CHAR "=" IN TAIL TO BE SECURE IT IS A PARAMETER // logger.trace("start index of "+wmsParam+ " is: "+index); String value = ""; if(index > -1){ int start = index + paramName.length()+1; //add +1 for char '=' String sub = url.substring(start, url.length()); int indexOfSeparator = sub.indexOf("&"); int end = indexOfSeparator!=-1?indexOfSeparator:sub.length(); value = sub.substring(0, end); }else return null; // logger.trace("return value: "+value); return value; } /** * Adds the parameter to query string. * * @param key the key * @param value the value * @param prefixAmpersand the prefix ampersand * @param suffixAmpersand the suffix ampersand * @return the string */ public static String addParameterToQueryString(String key, String value, boolean prefixAmpersand, boolean suffixAmpersand) { String queryParameter = ""; if(prefixAmpersand) queryParameter+="&"; queryParameter+=key+"="+value; if(suffixAmpersand) queryParameter+="&"; return queryParameter; } /** * Extract value of parameter from URL. * * @param paramName the param name * @param url the url * @return the string */ public static String extractValueOfParameterFromURL(String paramName, String url) { int index = url.toLowerCase().indexOf(paramName.toLowerCase() + "="); // ADDING CHAR "=" IN TAIL TO BE SURE THAT IT // IS A PARAMETER String value = ""; if (index > -1) { int start = index + paramName.length() + 1; // add +1 for char '=' String sub = url.substring(start, url.length()); int indexOfSeparator = sub.indexOf("&"); int end = indexOfSeparator != -1 ? indexOfSeparator : sub.length(); value = sub.substring(0, end); } else return null; return value; } }