protected Object extractHeaderParam(MethodParam param, HttpRequest request) { //header param can be a list or string, if neither set to null if (List.class.isAssignableFrom(param.getParameterType())) { return request.headers().getAll(param.getName()); } else { if (String.class.isAssignableFrom(param.getParameterType())) { return request.headers().get(param.getName()); } else { if (ReflectionUtil.isNumeric(param.getParameterType())) { //if param is a number then try to handle with NumberType.parseType return extractNumberParam(param, request.headers().get(param.getName())); } else { return null; } } } }
/** * Sets the given parameter * * @param param the param to set */ public void setParam(MethodParam param) { params[param.getPosition()] = param; }
MethodParam methodParam = new MethodParam(); methodParam.setParameterType(parameterType); methodParam.setPosition(i); im.setParam(methodParam); methodParam.setValidationRequired(true); if (DefaultValidator.class.isAssignableFrom(validationParam.value())) { methodParam.setValidator(new DefaultValidator()); } else { try { methodParam.setValidator(validationParam.value().newInstance()); } catch (InstantiationException | IllegalAccessException e) { throw new IllegalValidatorException("All validators must have a publicly accessible " + SessionParam sessionParam = (SessionParam) annotation; if (sessionParam.value() != null && !sessionParam.value().isEmpty()) { methodParam.setSessionParam(true); methodParam.setName(sessionParam.value()); methodParam.setPathParam(true); if (pathParam.value() != null && !pathParam.value().isEmpty()) { methodParam.setName(pathParam.value()); methodParam.setQueryParam(true); if (queryParam.value() != null && !queryParam.value().isEmpty()) { methodParam.setName(queryParam.value()); methodParam.setFormParam(true);
private Object processAnnotations(HttpMethod method, HttpRequest request, MethodParam param, MethodParam[] params, ResourcePath path, ResourcePath.Component[] components, ChannelHandlerContext ctx) { if (param.isCookieParam()) { return extractCookieParam(param, request); } else if (param.isHeaderParam()) { return extractHeaderParam(param, request); } else if (param.isFormParam()) { return extractFormParam(param, request); } else if (param.isQueryParam()) { return extractQueryParam(param, request); } else if (param.isPathParam()) { return extractPathParam(param, path); } else if (param.isSessionParam()) { return request.getSubject() == null ? null : request.getSubject().getSession().getAttribute(param.getName()); } return null; }
if (ValidationResult.class.isAssignableFrom(param.getParameterType())) { args[i] = result; continue; if (param.isNamed()) { if (param.isValidationRequired()) { boolean valid = param.getValidator().isValid(o); args[i] = RequiredParam.class.isAssignableFrom(param.getParameterType()) ? new RequiredParam<>(o, valid) : o; result.put(param.getName() + "_valid", valid); if (!valid) { result.invalid(); result.put(param.getName(), param.getValidator().getValidationMessage(param)); result.put(param.getName() + "_valid", true); args[i] = o;
MethodParam[] params, ResourcePath path, ResourcePath.Component[] components, ChannelHandlerContext ctx) { if (io.netty.handler.codec.http.HttpRequest.class.isAssignableFrom(param.getParameterType())) { return request; } else if (FormFiles.class.isAssignableFrom(param.getParameterType())) { return request.getFormFiles(); } else if (HttpResponse.class.isAssignableFrom(param.getParameterType())) { return res; } else if (FormParams.class.isAssignableFrom(param.getParameterType())) { return request.getFormParam(); } else if (HttpCookies.class.isAssignableFrom(param.getParameterType())) { return request.getCookies(); } else if (QueryParams.class.isAssignableFrom(param.getParameterType())) { return request.getQueryParams(); } else if (Session.class.isAssignableFrom(param.getParameterType())) { return request.getSubject() == null ? null : request.getSubject().getSession(); } else if (Subject.class.isAssignableFrom(param.getParameterType())) { return request.getSubject(); } else if (ResourcePath.class.isAssignableFrom(param.getParameterType())) { return path; } else if (ChannelHandlerContext.class.isAssignableFrom(param.getParameterType())) { return ctx; } else if (Channel.class.isAssignableFrom(param.getParameterType())) { return ctx.channel(); } else {
@Override public String getValidationMessage(MethodParam param) { return String.format("%s is required", param.getName()); }
if (Integer.class.isAssignableFrom(param.getParameterType())) { try { return Integer.parseInt(value); } else if (Long.class.isAssignableFrom(param.getParameterType())) { try { return Long.parseLong(value); } else if (Float.class.isAssignableFrom(param.getParameterType())) { try { return Float.parseFloat(value); } else if (Double.class.isAssignableFrom(param.getParameterType())) { try { return Double.parseDouble(value); } else if (Short.class.isAssignableFrom(param.getParameterType())) { try { return Short.parseShort(value); } else if (Byte.class.isAssignableFrom(param.getParameterType())) { try { return Byte.parseByte(value); } else if (int.class.isAssignableFrom(param.getParameterType())) { return Integer.parseInt(value); } else if (long.class.isAssignableFrom(param.getParameterType())) { return Long.parseLong(value); } else if (float.class.isAssignableFrom(param.getParameterType())) {
protected Object extractFormParam(MethodParam param, HttpRequest request) { Object obj = request.getFormParam().get(param.getName()); if (obj != null && param.getParameterType().isAssignableFrom(obj.getClass())) { return obj; } else { if (ReflectionUtil.isNumeric(param.getParameterType())) { //if param is a number then try to handle with NumberType.parseType return extractNumberParam(param, (String) request.getFormParam().get(param.getName())); } else { return null; } } }
for (int i = 0; i < p.length; i++) { MethodParam param = p[i]; Class<?> paramType = param.getParameterType(); if (paramType.isAssignableFrom(request.getClass())) { params[i] = request;
protected Object extractCookieParam(MethodParam param, HttpRequest request) { HttpCookie cookie = request.getCookie(param.getName()); if (cookie == null) { return null; } if (String.class.isAssignableFrom(param.getParameterType())) { return cookie.getValue(); } else if (HttpCookie.class.isAssignableFrom(param.getParameterType())) { return cookie; } else if (ReflectionUtil.isNumeric(param.getParameterType())) { //if param is a number then try to handle with NumberType.parseType return extractNumberParam(param, cookie.getValue()); } else { return null; } }
for (int i = 0; i < p.length; i++) { MethodParam param = p[i]; Class<?> paramType = param.getParameterType(); if (paramType.isAssignableFrom(request.getClass())) { params[i] = request;
protected Object extractQueryParam(MethodParam param, HttpRequest request) { //query string param can be a list or string, if neither set to null if (List.class.isAssignableFrom(param.getParameterType())) { return request.getQueryParams().get(param.getName()); } else if (String.class.isAssignableFrom(param.getParameterType())) { return request.getQueryParams().getFirst(param.getName()); } else { if (ReflectionUtil.isNumeric(param.getParameterType())) { //if param is a number then try to handle with NumberType.parseType return extractNumberParam(param, request.getQueryParams().getFirst(param.getName())); } else { return null; } } }
protected Object extractPathParam(MethodParam param, ResourcePath path) { ResourcePath.Component component = path.getComponent(param.getName()); if (String.class.isAssignableFrom(param.getParameterType())) { if (component != null) { return component.getRuntimeValue(); } } else { if (ReflectionUtil.isNumeric(param.getParameterType())) { //if param is a number then try to handle with NumberType.parseType return extractNumberParam(param, component == null ? null : component.getRuntimeValue()); } } return null; }