public final String generateRandomCode() { // Find compilation unit node. final TreeNode<Integer> rootNode = treeFormat.getKeyForCompilationUnit(); final TSGNode topTreeNode = new TSGNode(rootNode.getData()); topTreeNode.isRoot = true; final TreeNode<TSGNode> node = TreeNode.create(topTreeNode, rootNode.nProperties()); final TreeNode<TSGNode> randomTree = this.generateRandom(node); final TreeNode<Integer> treeCopy = TreeNode.create(randomTree.getData().nodeKey, randomTree.nProperties()); TSGNode.copyChildren(treeCopy, randomTree); return treeFormat.getCodeFromTree(treeCopy); }