}
public Link add(String path, Document doc) throws SiteException {
if (containsByUuid(doc.getUUID(), doc.getLanguage())) {
throw new SiteException("The document [" + doc + "] is already contained!");
}
TreeNodeImpl node;
if (contains(path)) {
node = getTreeNode(path);
if (node.getUuid() == null) {
node.setUuid(doc.getUUID());
} else if (!node.getUuid().equals(doc.getUUID())) {
throw new SiteException("The node already has a different UUID!");
}
} else {
node = (TreeNodeImpl) add(path);
node.setUuid(doc.getUUID());
}