java -init
//获得根节点
public Node getParent(Node node) {
return (Node) node.parent.get(0);
}
public boolean updateChild(Node node, Node childnode) {
Map param = new HashMap();
param.put("id", node.getId());
Map parentMap = dao.queryForList("ds-list", param);
String parent_modify_date = parentMap.get("modify_date").toString();
Map paramChild = new HashMap();
paramChild.put("id", childnode.getId());
Map childMap = dao.queryForList("ds-list", paramChild);
String child_modify_date = childMap.get("modify_date").toString();
if (parent_modify_date.compareTo(child_modify_date) > 0) {
Date date = new Date();
childMap.putAll(parentMap);
childMap.remove("node_id");
childMap.put("modify_date", date.getTime());
dao.insert("cmeta-data-add", childMap);
if (childnode == this) {
return true;
} else {
for (int i = 0; i < childnode.child.size(); i++) {
updateChild(childnode, (Node) childnode.child.get(i));
}
}
}
return true;
}
//找根节点 不需要list,只找一条线的根节点
private boolean initVariableset() {
if (this.parent.size() == 0) {
return true;
}
//一、获取根节点
//定义根节点
Node node_source = new Node();
//根节点赋值
for (int i = 0; i < this.parent.size(); i++) {
node_source = (Node) parent.get(i);
if (getParent(node_source).parent.size() == 0) {
break;
} else {
for (int j = 0; j < node_source.parent.size(); j++) {
node_source = getParent(node_source);
if (getParent(node_source).parent.size() == 0) {
break;
}
}
}
}
// 二、获取根节点的 modify_date
//循环取子节点
for (int j = 0; j < node_source.child.size(); j++) {
updateChild(node_source, (Node) node_source.child.get(j));
}
return true;
}