public class NodeData extends Function {
@Override
public Object execute(NodeKeeper nodeKeeper, Node current) {
try {
Class clazz = params.length == 2 ? Class.forName((String)((Function)params[0]).execute(nodeKeeper,current)) : String.class;
Node node = nodeKeeper.readNode((String)((Function)params[0]).execute(nodeKeeper,current),clazz);
return node == null ? null : node.getData();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.