Bug 89137 [JFace] - API Review - "temporary" API in AbstractTreeViewer
AbstractTreeViewer contains two methods documented as "temporary" internalRefresh(Widget, Object) internalAdd(Widget, Object, Object [])
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
newItem(item, SWT.NULL, -1); 
    }
    /**
     * Gets the expanded elements that are visible to the user. An expanded
     * element is only visible if the parent is expanded.
     * 
     * @return the visible expanded elements
     * @since 2.0
     */
    public Object[] getVisibleExpandedElements() {
        ArrayList v = new ArrayList();
        internalCollectVisibleExpanded(v, getControl());
        return v.toArray();
    }
    private void internalCollectVisibleExpanded(ArrayList result, Widget widget) {
        Item[] items = getChildren(widget);
        for (int i = 0; i < items.length; i++) {
            Item item = items[i];
            if (getExpanded(item)) {
                Object data = item.getData();
                if (data != null)
                    result.add(data);
                
                
                internalCollectVisibleExpanded(result, item);
            }
        }
    }
}