package com.twitter.common.net.http.handlers;
import java.util.logging.Logger;
import javax.annotation.Nullable;
import javax.servlet.http.HttpServletRequest;
/**
* Simple utility for parsing HttpServletRequest parameters by type.
*/
public class HttpServletRequestParams {
private static final Logger LOG = Logger.getLogger(HttpServletRequestParams.class.getName());
/**
* Parses an int param from an HttpServletRequest, returns a default value
* if the parameter is not set or is not a valid int.
*/
public static int getInt(HttpServletRequest request, String param, int defaultValue) {
final String value = request.getParameter(param);
int result = defaultValue;
if (value != null) {
try {
result = Integer.parseInt(value);
} catch (NumberFormatException e) {
LOG.warning("Invalid int for " + param + ": " + value);
}
}
return result;
}
/**
* Parses a long param from an HttpServletRequest, returns a defualt value
* if the parameter is not set or is not a valid long.
*/
public static long getLong(HttpServletRequest request, String param, long defaultValue) {
final String value = request.getParameter(param);
long result = defaultValue;
if (value != null) {
try {
result = Long.parseLong(value);
} catch (NumberFormatException e) {
LOG.warning("Invalid long for " + param + ": " + value);
}
}
return result;
}
/**
* Parses a bool param from an HttpServletRequest, returns a default value
* if the parameter is not set. Note that any value that is set will be
* considered a legal bool by Boolean.valueOf, defualting to false if not
* understood.
*/
public static boolean getBool(HttpServletRequest request, String param, boolean defaultValue) {
if (request.getParameter(param) != null) {
return Boolean.valueOf(request.getParameter(param));
} else {
return defaultValue;
}
}
/**
* Returns a string param from an HttpServletRequest if set, returns a defualt value
* if the parameter is not set.
*/
@Nullable
public static String getString(HttpServletRequest request, String param,
@Nullable String defaultValue) {
if (request.getParameter(param) != null) {
return request.getParameter(param);
} else {
return defaultValue;
}
}
}