public List<BeanMetaData> getBeans()
{
ArrayList<BeanMetaData> result = new ArrayList<BeanMetaData>();
//Do not include the bean factory here, just install the bean directly and the binding
BeanMetaDataBuilder lifecycleBuilder = AOPBeanMetaDataBuilder.createBuilder(name, getBean());
if (properties != null && properties.size() > 0)
{
for (PropertyMetaData pmd : properties)
{
lifecycleBuilder.addPropertyMetaData(pmd.getName(), pmd.getValue());
}
}
Set<DependencyMetaData> depends = getDepends();
if (depends != null && depends.size() > 0)
{
for (DependencyMetaData depend : depends)
{
lifecycleBuilder.addDependency(depend.getDependency());
}
}
result.add(lifecycleBuilder.getBeanMetaData());
String aspectBindingName = name + "$AspectBinding";
BeanMetaDataBuilder bindingBuilder = AOPBeanMetaDataBuilder.createBuilder(aspectBindingName, LifecycleBinding.class.getName());
bindingBuilder.addPropertyMetaData("callbackBean", name);
setAspectManagerProperty(bindingBuilder);
if (expr != null)
{
bindingBuilder.addPropertyMetaData("expr", expr);
}
else if (classes != null)
{
bindingBuilder.addPropertyMetaData("classes", classes);
}
bindingBuilder.addPropertyMetaData("state", getState());
if (installMethod != null)
{
bindingBuilder.addPropertyMetaData("installMethod", installMethod);
}
if (uninstallMethod != null)
{
bindingBuilder.addPropertyMetaData("uninstallMethod", uninstallMethod);
}
result.add(bindingBuilder.getBeanMetaData());
return result;
}