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 {
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 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;
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 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; } } } }
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; }
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; } } }
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; } } }
if (ValidationResult.class.isAssignableFrom(param.getParameterType())) { args[i] = result; continue; args[i] = RequiredParam.class.isAssignableFrom(param.getParameterType()) ? new RequiredParam<>(o, valid) : o; result.put(param.getName() + "_valid", valid);