/** * */ package org.gcube.portlets.user.workspace.server.util; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * The Class UrlEncoderUtil. * * @author Francesco Mangiacrapa francesco.mangiacrapa{@literal @}isti.cnr.it * Sep 14, 2016 */ public class UrlEncoderUtil { public static String charset = "UTF-8"; public static Logger logger = LoggerFactory.getLogger(UrlEncoderUtil.class); /** * Encode query. * * @param parameters the parameters * @return the string */ public static String encodeQuery(String... parameters){ String query = ""; for (String string : parameters) { try { query+=URLEncoder.encode(string, charset)+"&"; } catch (UnsupportedEncodingException e) { logger.error("Error: ",e); return query; } } return removeLastChar(query); } /** * Encode query value. * * @param value the value * @return the string */ public static String encodeQueryValue(String value){ if(value==null || value.isEmpty()) return value; try { return URLEncoder.encode(value, charset); } catch (UnsupportedEncodingException e) { logger.error("Error: ",e); return null; } } /** * Encode query values. * * @param parameters the parameters * @return the string */ public static String encodeQueryValues(Map parameters){ String query = ""; if(parameters==null) return query; for (String key : parameters.keySet()) { try { query+=String.format(key+"=%s", URLEncoder.encode(parameters.get(key), charset))+"&"; } catch (UnsupportedEncodingException e) { logger.error("Error: ",e); return query; } } return removeLastChar(query); } /** * Removes the last char. * * @param string the string * @return the string */ public static String removeLastChar(String string){ if(string == null) return null; if(string.length()>0) return string.substring(0, string.length()-1); return string; } /** * Gets the charset. * * @return the charset */ public static String getCharset() { return charset; } /** * Sets the charset. * * @param charset the charset to set */ public static void setCharset(String charset) { UrlEncoderUtil.charset = charset; } }