assertNotNull(order, "order");
assertNotNull(pruneBody, "body");
assertNotNull(pruneLanguage, "language");
assertNotNull(returnableEvaluator, "returnable evaluator");
RestTraversal rt = getRestTraversal(order, rels);
RestTraversalDescription.ScriptLanguage _language = RestTraversalDescription.ScriptLanguage.valueOf(pruneLanguage);
rt.prune(_language, pruneBody);
TraverserImpl result = new TraverserImpl();
result.filter = new Filter(result, returnableEvaluator);
result.iter = rt.traverse(node).iterator();
return result;
}