workspace-tree-widget/src/main/java/org/gcube/portlets/user/workspace/server/util/UrlEncoderUtil.java

127 lines
2.3 KiB
Java

/**
*
*/
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<String, String> 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;
}
}