@Override public String address(Class<?> api, String address) { return delegate().address(api, address); }
@Override public String address(Class<?> api) { return delegate().address(api); }
@Override public String address(Class<?> type, Class<?> api) { return delegate().address(type, api); }
/** * Find the session by its service type. * * If the session doesn't exist, create it. */ @Override public <X> X session(Class<X> type) { String address = services().address(type); if (address.startsWith("/")) { address = "session://" + address; } return sessionImpl(address + "/").as(type); }
@Override public <T> Provider<T> provider(Injector manager, Key<T> key) { Class<T> rawClass = key.rawClass(); Service service = rawClass.getAnnotation(Service.class); if (service == null) { return null; } if (key.isAnnotationPresent(ServiceImpl.class)) { return null; } String address = getManager().address(rawClass); if (address != null && ! address.isEmpty()) { T proxy = getManager().service(address).as(rawClass); return ()->proxy; } else { return null; } }
@Override public <T> Provider<T> provider(Injector manager, InjectionPoint<T> ip) { Service service = ip.annotation(Service.class); Class<T> rawClass = ip.key().rawClass(); if (service == null) { service = metaService(ip.key()); } if (service == null) { service = rawClass.getAnnotation(Service.class); } if (service == null) { return null; } String address = getManager().address(rawClass, service.value()); if (address != null && ! address.isEmpty()) { T proxy = getManager().service(address).as(rawClass); return ()->proxy; } else { return null; } }
String address = builder.services().address(_type);