if (parent.childrenLoaded()) parent.propogateNode(asset, linkid, sortOrder);
if (hasShadowAssets) { Iterator nodes = parent.getTreeNodes(); while (nodes.hasNext()) { AssetTreeNode node = (AssetTreeNode) nodes.next(); node.insert(asset.createNode(linkid), 0); } } else { if (parent.childrenLoaded()) parent.propogateNode(asset, linkid, sortOrder); }
	public void updateAsset(Element childElement, Asset parent) {		NodeList childNodes = (NodeList) childElement.getChildNodes();		int index = 0;		ArrayList linkids = new ArrayList();				for (int i = 0; i < childNodes.getLength(); i++) {			if (!(childNodes.item(i) instanceof Element))				continue;			Element assetElement = (Element) childNodes.item(i);			Asset asset = processAssetXML(assetElement, true);			// continue if this is us anyway			if (parent.getId().equals(asset.getId()))				continue;						String linkid = MatrixToolkit.rawUrlDecode(assetElement.getAttribute("linkid"));			linkids.add(linkid);			int sortOrder = Integer.parseInt(assetElement.getAttribute("sort_order"));						if (parent.childrenLoaded())				parent.propogateNode(asset, linkid, sortOrder);			index++;		}		parent.cleanNodes(linkids);		parent.setChildCount(index);	}