package net.asfun.jangod.tree; public class NodeAction { public static boolean remove(Node node) { return node.remove(); } public static boolean exchange(Node node1, Node node2) { return node1.exchange(node2); } public static boolean replace(Node tobe, Node with) { if (tobe.parent != null) { return tobe.parent.children.replace(tobe, with); } return false; } public static boolean replace(Node tobe, NodeList with) { if (tobe.parent != null) { return tobe.parent.children.replace(tobe, with); } return false; } public static boolean insertAfter(Node node, Node toAdd) { if (node.parent != null) { if (node.parent == toAdd.parent) { return node.parent.children.jumpAfter(node, toAdd); } else { return node.parent.children.postend(node, toAdd); } } return false; } public static boolean insertBefore(Node node, Node toAdd) { if (node.parent != null) { if (node.parent == toAdd.parent) { return node.parent.children.jumpBefore(node, toAdd); } else { return node.parent.children.preend(node, toAdd); } } return false; } public static boolean addChildLast(Node parent, Node toAdd) { if (toAdd.parent == parent) { return parent.children.jumpAfter(parent.children.tail, toAdd); } else { return parent.addChild(toAdd); } } public static boolean addChildFirst(Node parent, Node toAdd) { if (toAdd.parent == parent) { return parent.children.jumpBefore(parent.children.head, toAdd); } else { return parent.children.forend(toAdd); } } }