@Override protected String doConversion(Object callableMemberDescriptor) { return ((CallableMemberDescriptor) callableMemberDescriptor).getDeclaration(); } },
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); }
TemplateModel invokeMethod(BeansWrapper bw, Object obj) throws TemplateModelException, InvocationTargetException, IllegalAccessException { return callableMemberDesc.invokeMethod(bw, obj, args); }
public static TemplateModelException newInvocationTemplateModelException(Object object, CallableMemberDescriptor callableMemberDescriptor, Throwable e) { return newInvocationTemplateModelException( object, new _DelayedConversionToString(callableMemberDescriptor) { @Override protected String doConversion(Object callableMemberDescriptor) { return ((CallableMemberDescriptor) callableMemberDescriptor).getDeclaration(); } }, callableMemberDescriptor.isStatic(), callableMemberDescriptor.isConstructor(), e); }
for (Iterator membDescs = fixArgMethods.getMemberDescriptors(); membDescs.hasNext();) { CallableMemberDescriptor membDesc = (CallableMemberDescriptor) membDescs.next(); Class[] paramTypes = membDesc.getParamTypes(); if (membDesc.isVarargs() && argIdx >= paramTypes.length - 1) { paramType = paramTypes[paramTypes.length - 1]; if (paramType.isArray()) {
@Override Class[] preprocessParameterTypes(CallableMemberDescriptor memberDesc) { return memberDesc.getParamTypes(); }
Object invokeConstructor(BeansWrapper bw) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException, TemplateModelException { return callableMemberDesc.invokeConstructor(bw, args); }
/** * Replaces the last parameter type with the array component type of it. */ @Override Class[] preprocessParameterTypes(CallableMemberDescriptor memberDesc) { final Class[] preprocessedParamTypes = memberDesc.getParamTypes().clone(); int ln = preprocessedParamTypes.length; final Class varArgsCompType = preprocessedParamTypes[ln - 1].getComponentType(); if (varArgsCompType == null) { throw new BugException("Only varargs methods should be handled here"); } preprocessedParamTypes[ln - 1] = varArgsCompType; return preprocessedParamTypes; }
public static TemplateModelException newInvocationTemplateModelException(Object object, CallableMemberDescriptor callableMemberDescriptor, Throwable e) { return newInvocationTemplateModelException( object, new _DelayedConversionToString(callableMemberDescriptor) { @Override protected String doConversion(Object callableMemberDescriptor) { return ((CallableMemberDescriptor) callableMemberDescriptor).getDeclaration(); } }, callableMemberDescriptor.isStatic(), callableMemberDescriptor.isConstructor(), e); }
for (Iterator membDescs = fixArgMethods.getMemberDescriptors(); membDescs.hasNext();) { CallableMemberDescriptor membDesc = (CallableMemberDescriptor) membDescs.next(); Class[] paramTypes = membDesc.getParamTypes(); if (membDesc.isVarargs() && argIdx >= paramTypes.length - 1) { paramType = paramTypes[paramTypes.length - 1]; if (paramType.isArray()) {
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); }
CallableMemberDescriptor maximal = maximalsIter.next(); final int cmpRes = compareParameterListPreferability( applicable.getParamTypes(), maximal.getParamTypes(), varArg); if (cmpRes > 0) { maximalsIter.remove();
public static TemplateModelException newInvocationTemplateModelException(Object object, CallableMemberDescriptor callableMemberDescriptor, Throwable e) { return newInvocationTemplateModelException( object, new _DelayedConversionToString(callableMemberDescriptor) { @Override protected String doConversion(Object callableMemberDescriptor) { return ((CallableMemberDescriptor) callableMemberDescriptor).getDeclaration(); } }, callableMemberDescriptor.isStatic(), callableMemberDescriptor.isConstructor(), e); }
for (Iterator membDescs = fixArgMethods.getMemberDescriptors(); membDescs.hasNext();) { CallableMemberDescriptor membDesc = (CallableMemberDescriptor) membDescs.next(); Class[] paramTypes = membDesc.getParamTypes(); if (membDesc.isVarargs() && argIdx >= paramTypes.length - 1) { paramType = paramTypes[paramTypes.length - 1]; if (paramType.isArray()) {
CallableMemberDescriptor callableMemberDesc = (CallableMemberDescriptor) fixArgMethodsIter.next(); fixArgMethods.add(callableMemberDesc); sb.append(callableMemberDesc.getDeclaration()); if (sb.length() != 0) sb.append(",\n"); sb.append(" "); sb.append(callableMemberDesc.getDeclaration());
Object invokeConstructor(BeansWrapper bw) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException, TemplateModelException { return callableMemberDesc.invokeConstructor(bw, args); }
TemplateModel invokeMethod(BeansWrapper bw, Object obj) throws TemplateModelException, InvocationTargetException, IllegalAccessException { return callableMemberDesc.invokeMethod(bw, obj, 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[] args, List modelArgs, CallableMemberDescriptor memberDesc, BeansWrapper unwrapper) throws TemplateModelException { final Class[] paramTypes = memberDesc.getParamTypes(); final int paramCount = paramTypes.length; final Class varArgsCompType = paramTypes[paramCount - 1].getComponentType();