@Override public String toString() { return BeanManagerUtil.beanDeftoString(handle); }
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public <T> AsyncBeanDef<T> lookupBean(final Class<T> type, final Annotation... qualifiers) { final Collection beans = lookupBeans(type, qualifiers); if (beans.size() > 1) { throw BeanManagerUtil.ambiguousResolutionException(type, beans, qualifiers); } else if (beans.isEmpty()) { throw BeanManagerUtil.unsatisfiedResolutionException(type, qualifiers); } else { return (AsyncBeanDef<T>) beans.iterator().next(); } }
public static <T> IOCResolutionException ambiguousResolutionException(Class<T> type, final Collection<IOCBeanDef<T>> resolved, Annotation... qualifiers) { final StringBuilder builder = new StringBuilder(); builder.append("Multiple beans matched " + type.getName() + " with qualifiers " + qualifiersToString(qualifiers) + "\n") .append("Found:\n"); for (final IOCBeanDef<T> beanDef : resolved) { builder.append(" ") .append(beanDef.toString()) .append("\n"); } IOCResolutionException iocResolutionException = new IOCResolutionException(builder.toString()); return iocResolutionException; }
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public <T> SyncBeanDef<T> lookupBean(final Class<T> type, Annotation... qualifiers) { if (qualifiers.length == 0) { qualifiers = new Annotation[] { QualifierUtil.DEFAULT_ANNOTATION }; } final Collection resolved = lookupBeans(type, qualifiers); if (resolved.isEmpty()) { throw BeanManagerUtil.unsatisfiedResolutionException(type, qualifiers); } else if (resolved.size() > 1) { throw BeanManagerUtil.ambiguousResolutionException(type, resolved, qualifiers); } else { return (SyncBeanDef<T>) resolved.iterator().next(); } }
public static <T> IOCResolutionException unsatisfiedResolutionException(Class<T> type, Annotation... qualifiers) { return new IOCResolutionException("No beans matched " + type.getName() + " with qualifiers " + qualifiersToString(qualifiers)); }