public void remove(EventStream eventStream, Viewable viewToRemove) { // If the viewToRemove to remove has child viewToRemove, don't disconnect - the child viewToRemove(s) need this if (viewToRemove.hasViews()) { return; } if (log.isDebugEnabled()) { log.debug(".remove Views before the remove of view " + viewToRemove + ", for event stream " + eventStream); ViewSupport.dumpChildViews("EventStream ", eventStream); } // Remove views in chain leaving only non-empty parent views to the child view to be removed ViewServiceHelper.removeChainLeafView(eventStream, viewToRemove); if (log.isDebugEnabled()) { log.debug(".remove Views after the remove, for event stream " + eventStream); ViewSupport.dumpChildViews("EventStream ", eventStream); } }
/** * Convenience method for logging the child views of a Viewable. Only logs if debug is enabled. * This is a recursive method. * @param prefix is a text to print for each view printed * @param parentViewable is the parent for which the child views are displayed. */ public static void dumpChildViews(String prefix, Viewable parentViewable) { if (log.isDebugEnabled()) { for (View child : parentViewable.getViews()) { if ((ExecutionPathDebugLog.isDebugEnabled) && (log.isDebugEnabled())) { log.debug(".dumpChildViews " + prefix + ' ' + child.toString()); } dumpChildViews(prefix + " ", child); } } }
ViewSupport.dumpChildViews("EventStream ", eventStreamViewable); ViewSupport.dumpChildViews("EventStream ", eventStreamViewable);