@Override
public void visit(ConfigVisitor visitor) {
if (bean != null) {
visitor.addDependency(bean, BeanState.DESCRIBED, beanInfo);
ServiceName name = BeanMetaDataConfig.toBeanName(bean, state);
visitor.addDependency(name, value); // direct name, since we have describe already
} else if (service != null) {
visitor.addDependency(ServiceName.parse(service), value);
} else {
Class<?> type = getType(visitor, getType());
if (type == null)
type = getType(visitor, this);
if (type == null)
throw PojoMessages.MESSAGES.cannotDetermineInjectedType(toString());
ServiceName instancesName = BeanMetaDataConfig.toInstancesName(type, state);
visitor.addDependency(instancesName, value);
}
}