+ this.ihead = head;
+ // FIXME: lift+liftLeft togheter
+ if (liftLeft && children != null && children.length > 0) {
+ Tree<NodeType> last = children[0];
+ this.children = new Tree[(children.length-1)+last.children.length];
+ System.arraycopy(children, 1, this.children, last.children.length, children.length-1);
+ if (last.children.length > 0)
+ System.arraycopy(last.children, 0, this.children, 0, last.children.length);
+ } else if (lift && children != null && children.length > 0) {
+ Tree<NodeType> last = children[children.length-1];
+ this.children = new Tree[(children.length-1)+last.children.length];
+ System.arraycopy(children, 0, this.children, 0, children.length-1);
+ if (last.children.length > 0)
+ System.arraycopy(last.children, 0, this.children, children.length-1, last.children.length);
+ } else {
+ this.children = ArrayUtil.clone(children, Tree.class);
+ }