/** * Trace/debug method. Return the XML content of all the registered graphs. */ public String dumpAll() { StringBuffer s = new StringBuffer(); for (int i=0; i<this.scopes.size(); i++) { RegEntry se = (RegEntry)this.scopes.get(i); if (se != null) { s.append("\n*** Graph:" + se.toString() + "\n"); // NOI18N s.append(se.getBean().dumpBeanNode()); } } return s.toString(); }
/** * Return all the bean roots for this name (either unique name or scope) */ public BaseBean[] getRoots(String s) { s = getGraphName(s); // Try to get the root by name, then by type RegEntry se = this.getRegEntry(s); if (se == null) { ArrayList list = new ArrayList(); for (int i=0; i<this.scopes.size(); i++) { se = (RegEntry)this.scopes.get(i); if (se.hasType(s)) list.add(se.getBean()); } BaseBean[] ret = new BaseBean[list.size()]; return (BaseBean[])list.toArray(ret); } else return (new BaseBean[] {se.getBean()}); }
/** * Return the entry for the BaseBean, if any. */ RegEntry getRegEntry(BaseBean bean, boolean raise) { for (int i=0; i<this.scopes.size(); i++) { RegEntry se = (RegEntry)this.scopes.get(i); if (se.getBean() == bean) { return se; } } // Didn't find it - try to look for the root if ((bean != null) && !bean.isRoot()) { do { bean = bean.parent(); } while(bean != null && !bean.isRoot()); return this.getRegEntry(bean, raise); } if (raise) { throw new IllegalArgumentException(Common.getMessage( "BeanGraphEntryNotInRegistry_msg", bean.name())); } else return null; }
/** * Remove a registry entry. */ public void removeEntry(String ID) { RegEntry entry = this.getRegEntry(ID); if (entry != null) entry.getBean().removePropertyChangeListener(this.changeTracer); this.removeRegEntry(entry); }
/** * Remove an entry in the registry. */ public void removeEntry(BaseBean bean) { RegEntry entry = this.getRegEntry(bean, false); if (entry != null) { entry.getBean().removePropertyChangeListener(this.changeTracer); this.removeRegEntry(entry); } }