/** * Lookups for first founded {@link BeanDefinition bean definition}. * Returns <code>null</code> if none of the beans is found. */ protected BeanDefinition lookupBeanDefinitions(final BeanReferences beanReferences) { final int total = beanReferences.size(); for (int i = 0; i < total; i++) { final String name = beanReferences.name(i); BeanDefinition beanDefinition = lookupBeanDefinition(name); if (beanDefinition != null) { return beanDefinition; } } return null; }
/** * Returns Petite bean instance named as one of the provided names. * Returns {@code null} if bean is not found. */ protected Object getBean(final BeanReferences beanReferences) { final int total = beanReferences.size(); for (int i = 0; i < total; i++) { String name = beanReferences.name(i); if (name != null) { Object bean = getBean(name); if (bean != null) { return bean; } } } return null; }
@Test void testAnnotation_withCsvValue() { Arrays.asList( method(Revolver.class, "someArguments_csv"), ctor(Revolver.SomeArguments_csv.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(2, refs.length); assertEquals(1, refs[0].size()); assertEquals("innn1", refs[0].name(0)); assertEquals(1, refs[1].size()); assertEquals("innn2", refs[1].name(0)); }); }
@Test void testResolveReferenceFromValues_explicit() { Arrays.asList( method(Revolver.class, "someArguments"), ctor(Revolver.SomeArguments.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.resolveReferenceFromValues(methodOrCtor, "i1", "i2"); assertEquals(2, refs.length); assertEquals(1, refs[0].size()); assertEquals("i1", refs[0].name(0)); assertEquals(1, refs[1].size()); assertEquals("i2", refs[1].name(0)); }); }
@Test void testAnnotation_mix() { Arrays.asList( method(Revolver.class, "mix"), ctor(Revolver.Mix.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(2, refs.length); assertEquals(1, refs[0].size()); assertEquals("innn1", refs[0].name(0)); assertEquals(1, refs[1].size()); assertEquals("bbbb", refs[1].name(0)); }); }
@Test void testFieldAnnotation_withValue() { BeanReferences refs = referencesResolver.readReferenceFromAnnotation(field(Revolver.class, "valued")); assertEquals(1, refs.size()); assertEquals("inn", refs.name(0)); } @Test
@Test void testAnnotation_noMethodArguments_partial() { Arrays.asList( method(Revolver.class, "noMethodArgument_partial"), ctor(Revolver.NoMethodArgument_partial.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(2, refs.length); assertEquals(1, refs[0].size()); assertEquals("innn1", refs[0].name(0)); assertEquals(3, refs[1].size()); assertEquals("in2", refs[1].name(0)); assertEquals("integer", refs[1].name(1)); assertEquals("java.lang.Integer", refs[1].name(2)); }); }
@Test void testAnnotation_noMethodArguments() { Arrays.asList( method(Revolver.class, "noMethodArgument"), ctor(Revolver.NoMethodArgument.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(2, refs.length); assertEquals(3, refs[0].size()); assertEquals("in1", refs[0].name(0)); assertEquals("string", refs[0].name(1)); assertEquals("java.lang.String", refs[0].name(2)); assertEquals(3, refs[1].size()); assertEquals("in2", refs[1].name(0)); assertEquals("integer", refs[1].name(1)); assertEquals("java.lang.Integer", refs[1].name(2)); }); }
@Test void testAnnotation_withArguments() { Arrays.asList( method(Revolver.class, "someArguments"), ctor(Revolver.SomeArguments.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.readAllReferencesFromAnnotation(methodOrCtor); assertEquals(2, refs.length); assertEquals(3, refs[0].size()); assertEquals("in1", refs[0].name(0)); assertEquals("string", refs[0].name(1)); assertEquals("java.lang.String", refs[0].name(2)); assertEquals(3, refs[1].size()); assertEquals("in2", refs[1].name(0)); assertEquals("integer", refs[1].name(1)); assertEquals("java.lang.Integer", refs[1].name(2)); }); }
@Test void testResolveReferenceFromValues_defaults() { Arrays.asList( method(Revolver.class, "someArguments"), ctor(Revolver.SomeArguments.class) ).forEach(methodOrCtor -> { BeanReferences[] refs = referencesResolver.resolveReferenceFromValues(methodOrCtor); assertEquals(2, refs.length); assertEquals(3, refs[0].size()); assertEquals("in1", refs[0].name(0)); assertEquals("string", refs[0].name(1)); assertEquals("java.lang.String", refs[0].name(2)); assertEquals(3, refs[1].size()); assertEquals("in2", refs[1].name(0)); assertEquals("integer", refs[1].name(1)); assertEquals("java.lang.Integer", refs[1].name(2)); }); }
@Test void testFieldAnnotation_annotation() { BeanReferences refs = referencesResolver.readReferenceFromAnnotation(field(Revolver.class, "onlyAnnotation")); assertEquals(3, refs.size()); assertEquals("onlyAnnotation", refs.name(0)); assertEquals("string", refs.name(1)); assertEquals("java.lang.String", refs.name(2)); } @Test
/** * Lookups for first founded {@link BeanDefinition bean definition}. * Returns <code>null</code> if none of the beans is found. */ protected BeanDefinition lookupBeanDefinitions(final BeanReferences beanReferences) { final int total = beanReferences.size(); for (int i = 0; i < total; i++) { final String name = beanReferences.name(i); BeanDefinition beanDefinition = lookupBeanDefinition(name); if (beanDefinition != null) { return beanDefinition; } } return null; }
/** * Returns Petite bean instance named as one of the provided names. * Returns {@code null} if bean is not found. */ protected Object getBean(final BeanReferences beanReferences) { final int total = beanReferences.size(); for (int i = 0; i < total; i++) { String name = beanReferences.name(i); if (name != null) { Object bean = getBean(name); if (bean != null) { return bean; } } } return null; }