@Override public <T> T create(Class<T> createMe, String strategy) { checkState(); return Utilities.justCreate(createMe, this, strategy); }
@Override public void inject(Object injectMe, String strategy) { checkState(); Utilities.justInject(injectMe, this, strategy); }
@Override public ActiveDescriptor<?> reifyDescriptor(Descriptor descriptor) throws MultiException { checkState(); return reifyDescriptor(descriptor, null); }
private <T> ServiceHandleImpl<T> getServiceHandleImpl( ActiveDescriptor<T> activeDescriptor, Injectee injectee) throws MultiException { if (activeDescriptor == null) throw new IllegalArgumentException(); checkState(); return new ServiceHandleImpl<T>(this, activeDescriptor, injectee); }
@Override public <T> T create(Class<T> createMe, String strategy) { checkState(); return Utilities.justCreate(createMe, this, strategy); }
@Override public void inject(Object injectMe, String strategy) { checkState(); Utilities.justInject(injectMe, this, strategy); }
@Override public void inject(Object injectMe, String strategy) { checkState(); Utilities.justInject(injectMe, this, strategy); }
@Override public void inject(Object injectMe, String strategy) { checkState(); Utilities.justInject(injectMe, this, strategy); }
@SuppressWarnings("unchecked") @Override public <T> List<T> getAllServices(Annotation qualifier, Annotation... qualifiers) throws MultiException { checkState(); List<ServiceHandle<?>> services = getAllServiceHandles(qualifier, qualifiers); List<T> retVal = new LinkedList<T>(); for (ServiceHandle<?> service : services) { retVal.add((T) service.getService()); } return retVal; }
@SuppressWarnings("unchecked") @Override public <T> List<T> getAllServices(Annotation qualifier, Annotation... qualifiers) throws MultiException { checkState(); List<ServiceHandle<?>> services = getAllServiceHandles(qualifier, qualifiers); List<T> retVal = new LinkedList<T>(); for (ServiceHandle<?> service : services) { retVal.add((T) service.getService()); } return retVal; }
@Override public ActiveDescriptor<?> getBestDescriptor(Filter filter) { if (filter == null) throw new IllegalArgumentException("filter is null"); checkState(); List<ActiveDescriptor<?>> sorted = getDescriptors(filter); return Utilities.getFirstThingInList(sorted); }
@Override public ActiveDescriptor<?> getBestDescriptor(Filter filter) { if (filter == null) throw new IllegalArgumentException("filter is null"); checkState(); List<ActiveDescriptor<?>> sorted = getDescriptors(filter); return Utilities.getFirstThingInList(sorted); }
@Override public List<ActiveDescriptor<?>> getDescriptors(Filter filter) { checkState(); return ReflectionHelper.cast(getDescriptors(filter, null, true, true, true)); }
@Override public List<ActiveDescriptor<?>> getDescriptors(Filter filter) { checkState(); return ReflectionHelper.cast(getDescriptors(filter, null, true, true, true)); }
@Override public List<ActiveDescriptor<?>> getDescriptors(Filter filter) { checkState(); return ReflectionHelper.cast(getDescriptors(filter, null, true, true, true)); }
private <T> ServiceHandleImpl<T> internalGetServiceHandle( ActiveDescriptor<T> activeDescriptor, Type requestedType, Injectee originalRequest) { if (activeDescriptor == null) throw new IllegalArgumentException(); checkState(); if (requestedType == null) { return getServiceHandleImpl(activeDescriptor, null); } Injectee useInjectee = (originalRequest != null) ? originalRequest : new InjecteeImpl(requestedType) ; return getServiceHandleImpl(activeDescriptor, useInjectee); }
/* package */ <T> ServiceHandle<T> getUnqualifiedServiceHandle(Type contractOrImpl, Unqualified unqualified, boolean isIterable, Annotation... qualifiers) throws MultiException { checkState(); ActiveDescriptor<T> ad = internalGetDescriptor(null, contractOrImpl, null, unqualified, isIterable, qualifiers); if (ad == null) return null; return getServiceHandle(ad, new InjecteeImpl(contractOrImpl)); }
/* package */ <T> ServiceHandle<T> getUnqualifiedServiceHandle(Type contractOrImpl, Unqualified unqualified, boolean isIterable, Annotation... qualifiers) throws MultiException { checkState(); ActiveDescriptor<T> ad = internalGetDescriptor(null, contractOrImpl, null, unqualified, isIterable, qualifiers); if (ad == null) return null; return getServiceHandle(ad, new InjecteeImpl(contractOrImpl)); }
@Override public <T> ServiceHandle<T> getServiceHandle(Type contractOrImpl, Annotation... qualifiers) throws MultiException { checkState(); ActiveDescriptor<T> ad = internalGetDescriptor(null, contractOrImpl, null, null, false, qualifiers); if (ad == null) return null; return getServiceHandle(ad, new InjecteeImpl(contractOrImpl)); }
@Override public <T> ServiceHandle<T> getServiceHandle(Type contractOrImpl, Annotation... qualifiers) throws MultiException { checkState(); ActiveDescriptor<T> ad = internalGetDescriptor(null, contractOrImpl, null, null, false, qualifiers); if (ad == null) return null; return getServiceHandle(ad, new InjecteeImpl(contractOrImpl)); }