/** * {@inheritDoc} */ @Override protected Object[] matchingArguments(final Parameter[] parameters, final Object[] arguments) { final Class<?>[] classes = ReflectionRecipes.classesFromParameters(parameters); final Object[] objects = new Object[classes.length]; final Class<?> componentType = classes[classes.length - 1].getComponentType(); final Object array = Array.newInstance(componentType, arguments.length - classes.length + 1); System.arraycopy(arguments, 0, objects, 0, classes.length - 1); int j = 0; for (int i = classes.length - 1; i < arguments.length; i++, j++) { Array.set(array, j, arguments[i]); } objects[classes.length - 1] = array; return objects; }
/** * @return matches or not * @see #matchArrayEnding(Class[], Object[]) */ public static boolean matchArrayEnding(final Parameter[] parameters, final Object[] param) { return matchArrayEnding(classesFromParameters(parameters), param); }
/** * Matches an array of parameters to an array of instances. * * @return matches or not * @see #lenientMatch(Class[], Object[]) */ public static boolean lenientMatch(final Parameter[] parameters, final Object[] args) { return lenientMatch(classesFromParameters(parameters), args); }
/** * Matches an array of parameters to an array of instances. * * @return matches or not * @see #exactMatch(Class[], Object[]) */ public static boolean exactMatch(final Parameter[] parameters, final Object[] args) { return exactMatch(classesFromParameters(parameters), args); }
/** {@inheritDoc} */ @Override protected Object[] matchingArguments(final Parameter[] parameters, final Object[] arguments) { final Class<?>[] classes = ReflectionRecipes.classesFromParameters(parameters); final Object[] objects = new Object[classes.length]; final Class<?> componentType = classes[classes.length - 1].getComponentType(); final Object array = Array.newInstance(componentType, arguments.length - classes.length + 1); System.arraycopy(arguments, 0, objects, 0, classes.length - 1); int j = 0; for (int i = classes.length - 1; i < arguments.length; i++, j++) { Array.set(array, j, arguments[i]); } objects[classes.length - 1] = array; return objects; } }
/** * @return matches or not * @see #matchArrayEnding(Class[], Object[]) */ public static boolean matchArrayEnding(final Parameter[] parameters, final Object[] param) { return matchArrayEnding(classesFromParameters(parameters), param); }
/** * Matches an array of parameters to an array of instances. * * @return matches or not * @see #exactMatch(Class[], Object[]) */ public static boolean exactMatch(final Parameter[] parameters, final Object[] args) { return exactMatch(classesFromParameters(parameters), args); }
/** * Matches an array of parameters to an array of instances. * * @return matches or not * @see #lenientMatch(Class[], Object[]) */ public static boolean lenientMatch(final Parameter[] parameters, final Object[] args) { return lenientMatch(classesFromParameters(parameters), args); }