protected <T extends ASTNode>T moveNode(T oldNode,ASTRewrite rewrite){
  T movedNode;
  if (ASTNodes.isExistingNode(oldNode))   movedNode=ASTNodes.createMoveTarget(rewrite,oldNode);
 else   movedNode=ASTNodes.copySubtree(rewrite.getAST(),oldNode);
  return movedNode;
}

protected < T extends ASTNode > T moveNode ( T oldNode , ASTRewrite rewrite ) { T movedNode ; if ( ASTNodes . isExistingNode ( oldNode ) ) movedNode = ASTNodes . createMoveTarget ( rewrite , oldNode ) ; else movedNode = ASTNodes . copySubtree ( rewrite . getAST ( ) , oldNode ) ; return movedNode ; }
if this occurrence update is called from within a declaration update ( i . e . , to update the call inside the newly created delegate ) , the old node does not yet exist and therefore cannot be a move target . normally , always use createmovetarget as this has the advantage of being able to add changes inside changed nodes ( for example , a method call within a method call , see test case # 4 ) and preserving comments inside calls .
