/** * Checks a class instance for being a given class or its sub-class. * * @param reference reference class instance. * @param clazz class instance to be tested. * @return would an instance of 'clazz' be an instance of reference class. */ public static boolean isOrExtends(final Class<?> reference, final Class<?> clazz) { boolean extendsGiven = false; if (clazz != null) { if (!reference.isInterface()) { if (reference.equals(clazz)) { extendsGiven = true; } else { extendsGiven = isOrExtends(reference, clazz.getSuperclass()); } } } return extendsGiven; }
/** * Checks a class instance for being a given class or its sub-class. * * @param reference reference class instance. * @param clazz class instance to be tested. * @return would an instance of 'clazz' be an instance of reference class. */ public static boolean isOrExtends(final Class<?> reference, final Class<?> clazz) { boolean extendsGiven = false; if (clazz != null) { if (!reference.isInterface()) { if (reference.equals(clazz)) { extendsGiven = true; } else { extendsGiven = isOrExtends(reference, clazz.getSuperclass()); } } } return extendsGiven; }
private static IWeaveXml attemptDefaultImplementationInstantiation() { String clazz = getClassName(); if (clazz.equals(DefaultXmlWeaver.class.getName())) { return new DefaultXmlWeaver(); } if (clazz.equals(CommentDisabledXmlWeaver.class.getName())) { return new CommentDisabledXmlWeaver(); } if (testMode) { return null; } Class<?> clazzName = ClassHelper.forName(clazz); if (ReflectionRecipes.isOrExtends(IWeaveXml.class, clazzName)) { return ClassHelper.newInstance((Class<IWeaveXml>) clazzName); } throw new IllegalArgumentException(clazz + " does not implement " + IWeaveXml.class.getName()); } }
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; }
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; }