} else if (!(node instanceof ExpandingNextNode)){
} else {
	void removeDiffChildNodes(String[] linkids) {		Iterator nodeIterator = getTreeNodes();		List staleNodes = null;		boolean found = false;		// foreach of the nodes that this asset prepresents...		while (nodeIterator.hasNext()) {			MatrixTreeNode node = (MatrixTreeNode) nodeIterator.next();			Enumeration children = node.children();			// loop over all the child nodes of this asset			// and see if any of nodes are not in the specfied linkids.			// If they are not, we need to remove them.			while (children.hasMoreElements()) {				MatrixTreeNode childNode = (MatrixTreeNode) children.nextElement();				String linkid = childNode.getLinkid();				found = false;				for (int i = 0; i < linkids.length; i++) {					if (linkids[i].equals(linkid)) {						found = true;						break;					}				}				if (!found) {					// lazily create					if (staleNodes == null)						staleNodes = new ArrayList();					staleNodes.add(childNode);				}			}		}		if (staleNodes != null) {			Iterator staleIterator = staleNodes.iterator();			DefaultTreeModel[] components = MatrixTreeModelBus.getBusComponents();			while (staleIterator.hasNext()) {				MatrixTreeNode node = (MatrixTreeNode) staleIterator.next();				// do not want to remove next, and previous nodes				if (node instanceof ExpandingPreviousNode) {					// we have to set the previous node as the first child					MatrixTreeNode parent = (MatrixTreeNode)node.getParent();					parent.insert(node,0);					for (int i = 0; i < components.length; i++) {						DefaultTreeModel model = components[i];						model.nodeStructureChanged(parent);					}				} else if (!(node instanceof ExpandingNextNode)){					Log.log("removing " + node + " in Asset", Asset.class);					MatrixTreeModelBus.removeNodeFromParent(node);				}			}		}	}