/** * Extracts class instances from parameters. * * @param parameters an array of parameters. * @return parameter types. */ public static Class<?>[] classesFromParameters(final Parameter[] parameters) { final Class<?>[] classes = new Class<?>[parameters.length]; int i = 0; for (final Parameter parameter : parameters) { classes[i] = parameter.getType(); i++; } return classes; }
private static Parameter[] getParameters(Class<?>[] parametersTypes, final Annotation[][] parametersAnnotations) { final Parameter[] parameters = new Parameter[parametersTypes.length]; for (int i = 0; i < parametersTypes.length; i++) { parameters[i] = new Parameter(i, parametersTypes[i], parametersAnnotations[i]); } return parameters; }
public Parameter(final int index, final Class<?> type, final Annotation[] declaredAnnotations) { this.index = index; this.type = type; this.declaredAnnotations = declaredAnnotations; this.declaredAnnotationsMap = declaredAnnotations(declaredAnnotations); }
private static boolean canInject(final Parameter parameter, final InjectableParameter injectableParameter) { boolean canInject = false; if (parameter != null ) { final boolean inject = !parameter.isAnnotationPresent(NoInjection.class); switch (injectableParameter) { case CURRENT_TEST_METHOD: final boolean isMethod = isOrExtends(Method.class, parameter.getType()); canInject = inject && isMethod; break; case ITEST_CONTEXT: canInject = inject && isOrImplementsInterface(ITestContext.class, parameter.getType()); break; case ITEST_RESULT: canInject = inject && isOrImplementsInterface(ITestResult.class, parameter.getType()); break; case XML_TEST: canInject = inject && isOrExtends(XmlTest.class, parameter.getType()); break; default: canInject = false; break; } } return canInject; }
/** * {@inheritDoc} */ @Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) { return getAnnotation(annotationClass) != null; }
/** * {@inheritDoc} */ @Override public Annotation[] getAnnotations() { // For parameter all annotations are declared. return getDeclaredAnnotations(); }
private static boolean canInject( final Parameter parameter, final InjectableParameter injectableParameter) { boolean canInject = false; if (parameter != null) { final boolean inject = !parameter.isAnnotationPresent(NoInjection.class); switch (injectableParameter) { case CURRENT_TEST_METHOD: final boolean isMethod = isOrExtends(Method.class, parameter.getType()); canInject = inject && isMethod; break; case ITEST_CONTEXT: canInject = inject && isOrImplementsInterface(ITestContext.class, parameter.getType()); break; case ITEST_RESULT: canInject = inject && isOrImplementsInterface(ITestResult.class, parameter.getType()); break; case XML_TEST: canInject = inject && isOrExtends(XmlTest.class, parameter.getType()); break; default: canInject = false; break; } } return canInject; }
/** {@inheritDoc} */ @Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) { return getAnnotation(annotationClass) != null; }
/** {@inheritDoc} */ @Override public Annotation[] getAnnotations() { // For parameter all annotations are declared. return getDeclaredAnnotations(); }
/** * Extracts class instances from parameters. * * @param parameters an array of parameters. * @return parameter types. */ public static Class<?>[] classesFromParameters(final Parameter[] parameters) { final Class<?>[] classes = new Class<?>[parameters.length]; int i = 0; for (final Parameter parameter : parameters) { classes[i] = parameter.getType(); i++; } return classes; }
private static Parameter[] getParameters( Class<?>[] parametersTypes, final Annotation[][] parametersAnnotations) { final Parameter[] parameters = new Parameter[parametersTypes.length]; for (int i = 0; i < parametersTypes.length; i++) { parameters[i] = new Parameter(i, parametersTypes[i], parametersAnnotations[i]); } return parameters; }
public Parameter(final int index, final Class<?> type, final Annotation[] declaredAnnotations) { this.index = index; this.type = type; this.declaredAnnotations = declaredAnnotations; this.declaredAnnotationsMap = declaredAnnotations(declaredAnnotations); }
@Test(dataProvider = "methodInputParameters") public void testFilters(final Parameter[] parameters) { System.out.println("In: " + Arrays.asList(parameters)); final Parameter[] parameters1 = ReflectionRecipes.filter(parameters, InjectableParameter.Assistant.ALL_INJECTS); System.out.println("Out: " + Arrays.asList(parameters1)); Assert.assertEquals(parameters1.length, 2); Assert.assertEquals(parameters1[0].getType(), int.class); Assert.assertEquals(parameters1[1].getType(), Boolean.class); }