Object invokeConstructor(BeansWrapper bw) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException, TemplateModelException { return callableMemberDesc.invokeConstructor(bw, args); }
private static Object newInstance(CallableMemberDescriptor constrDesc, Object[] args, BeansWrapper bw) throws InstantiationException, IllegalAccessException, InvocationTargetException, IllegalArgumentException, TemplateModelException { if (args == null) args = CollectionUtils.EMPTY_OBJECT_ARRAY; final Object[] packedArgs; if (constrDesc.isVarargs()) { // We have to put all the varargs arguments into a single array argument. final Class<?>[] paramTypes = constrDesc.getParamTypes(); final int fixedArgCnt = paramTypes.length - 1; packedArgs = new Object[fixedArgCnt + 1]; for (int i = 0; i < fixedArgCnt; i++) { packedArgs[i] = args[i]; } final Class<?> compType = paramTypes[fixedArgCnt].getComponentType(); final int varArgCnt = args.length - fixedArgCnt; final Object varArgsArray = Array.newInstance(compType, varArgCnt); for (int i = 0; i < varArgCnt; i++) { Array.set(varArgsArray, i, args[fixedArgCnt + i]); } packedArgs[fixedArgCnt] = varArgsArray; } else { packedArgs = args; } return constrDesc.invokeConstructor(bw, packedArgs); }
Object invokeConstructor(BeansWrapper bw) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException, TemplateModelException { return callableMemberDesc.invokeConstructor(bw, args); }
Object invokeConstructor(BeansWrapper bw) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException, TemplateModelException { return callableMemberDesc.invokeConstructor(bw, args); }
private static Object newInstance(CallableMemberDescriptor constrDesc, Object[] args, BeansWrapper bw) throws InstantiationException, IllegalAccessException, InvocationTargetException, IllegalArgumentException, TemplateModelException { if (args == null) args = CollectionUtils.EMPTY_OBJECT_ARRAY; final Object[] packedArgs; if (constrDesc.isVarargs()) { // We have to put all the varargs arguments into a single array argument. final Class<?>[] paramTypes = constrDesc.getParamTypes(); final int fixedArgCnt = paramTypes.length - 1; packedArgs = new Object[fixedArgCnt + 1]; for (int i = 0; i < fixedArgCnt; i++) { packedArgs[i] = args[i]; } final Class<?> compType = paramTypes[fixedArgCnt].getComponentType(); final int varArgCnt = args.length - fixedArgCnt; final Object varArgsArray = Array.newInstance(compType, varArgCnt); for (int i = 0; i < varArgCnt; i++) { Array.set(varArgsArray, i, args[fixedArgCnt + i]); } packedArgs[fixedArgCnt] = varArgsArray; } else { packedArgs = args; } return constrDesc.invokeConstructor(bw, packedArgs); }
private static Object newInstance(CallableMemberDescriptor constrDesc, Object[] args, BeansWrapper bw) throws InstantiationException, IllegalAccessException, InvocationTargetException, IllegalArgumentException, TemplateModelException { if (args == null) args = CollectionUtils.EMPTY_OBJECT_ARRAY; final Object[] packedArgs; if (constrDesc.isVarargs()) { // We have to put all the varargs arguments into a single array argument. final Class<?>[] paramTypes = constrDesc.getParamTypes(); final int fixedArgCnt = paramTypes.length - 1; packedArgs = new Object[fixedArgCnt + 1]; for (int i = 0; i < fixedArgCnt; i++) { packedArgs[i] = args[i]; } final Class<?> compType = paramTypes[fixedArgCnt].getComponentType(); final int varArgCnt = args.length - fixedArgCnt; final Object varArgsArray = Array.newInstance(compType, varArgCnt); for (int i = 0; i < varArgCnt; i++) { Array.set(varArgsArray, i, args[fixedArgCnt + i]); } packedArgs[fixedArgCnt] = varArgsArray; } else { packedArgs = args; } return constrDesc.invokeConstructor(bw, packedArgs); }