Bug 93400 LTK UI should provide official API for structural content in the preview page
org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/PseudoLanguageChangeElement.java
public ChangeElement[] getChildren() {
		if (fChildren == null)
			return EMPTY_CHILDREN;
		return (ChangeElement[]) fChildren.toArray(new ChangeElement[fChildren.size()]);
	}
	
	public boolean hasOneGroupCategory(List categories) {
		if (fChildren == null)
			return false;
		return getGroupCategorySet().containsOneCategory(categories);
	}
	
	public GroupCategorySet getGroupCategorySet() {
		if (fGroupCategories == null) {
			fGroupCategories= GroupCategorySet.NONE;
			for (Iterator iter= fChildren.iterator(); iter.hasNext();) {
				ChangeElement node= (ChangeElement)iter.next();
				GroupCategorySet other= null;
				if (node instanceof TextEditChangeElement) {
					other= ((TextEditChangeElement)node).getGroupCategorySet();
				} else if (node instanceof PseudoLanguageChangeElement) {
					other= ((PseudoLanguageChangeElement)node).getGroupCategorySet();
				} else {
					Assert.isTrue(false, "Shouldn't happen"); 
				}
				fGroupCategories= GroupCategorySet.union(fGroupCategories, other);
			}
		}
		return fGroupCategories;
	}