package com.tinkerpop.gremlin.groovy.console;
import com.tinkerpop.pipes.transform.ToStringPipe;
import com.tinkerpop.pipes.util.iterators.SingleIterator;
import groovy.lang.Closure;
import org.codehaus.groovy.tools.shell.IO;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class ResultHookClosure extends Closure {
private final String resultPrompt;
private final IO io;
public ResultHookClosure(final Object owner, final IO io, final String resultPrompt) {
super(owner);
this.io = io;
this.resultPrompt = resultPrompt;
}
public Object call(final Object[] args) {
final Object result = args[0];
ToStringPipe toStringPipe = new ToStringPipe();
toStringPipe.setStarts(new SingleIterator<Object>(result));
while (toStringPipe.hasNext()) {
this.io.out.println(this.resultPrompt + toStringPipe.next());
}
return null;
}
}