// Add all beans references from bean (parent, factory or
// depends-on beans) to list of graph edges
Iterator beanRefs = BeansModelUtils.getBeanReferences(bean.getBean(),
BeansCorePlugin.getModel().getElement(contextId), false).iterator();
while (beanRefs.hasNext()) {
BeansConnection beanRef = (BeansConnection) beanRefs.next();
Bean targetBean = this.beans.get(beanRef.getTarget().getElementName());
if (targetBean != null && targetBean != bean && beanRef.getSource() instanceof IBean) {
beanReferences.add(new Reference(beanRef.getType(), bean, targetBean, bean, beanRef.isInner()));
}
}
// Add all bean references in bean's constructor arguments to list
// of graph edges
ConstructorArgument[] cargs = bean.getConstructorArguments();
for (ConstructorArgument carg : cargs) {
Iterator cargRefs = BeansModelUtils.getBeanReferences(carg.getBeanConstructorArgument(),
BeansCorePlugin.getModel().getElement(contextId), false).iterator();
while (cargRefs.hasNext()) {
BeansConnection beanRef = (BeansConnection) cargRefs.next();
Bean targetBean = this.beans.get(beanRef.getTarget().getElementName());
if (targetBean != null && targetBean != bean) {
beanReferences.add(new Reference(beanRef.getType(), bean, targetBean, carg, beanRef.isInner()));
}
}
}
// Add all bean references in properties to list of graph edges
Property[] properties = bean.getProperties();
for (Property property : properties) {
Iterator propRefs = BeansModelUtils.getBeanReferences(property.getBeanProperty(),
BeansCorePlugin.getModel().getElement(contextId), false).iterator();
while (propRefs.hasNext()) {
BeansConnection beanRef = (BeansConnection) propRefs.next();
Bean targetBean = this.beans.get(beanRef.getTarget().getElementName());
if (targetBean != null && targetBean != bean) {
beanReferences.add(new Reference(beanRef.getType(), bean, targetBean, property, beanRef
.isInner()));
}
}
}
}