Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 19 additions & 11 deletions src/main/java/com/dashjoin/jsonata/Jsonata.java
Original file line number Diff line number Diff line change
Expand Up @@ -1501,7 +1501,7 @@ Object evaluateTransformExpression(Symbol expr, Object input, Frame environment)
return result;
};

return new JFunction(transformer, "<(oa):o>");
return new JFunction("evaluateTransform", transformer, "<(oa):o>");
}

static Symbol chainAST; // = new Parser().parse("function($f, $g) { function($x){ $g($f($x)) } }");
Expand Down Expand Up @@ -2045,34 +2045,34 @@ public static JFunction function(String name, String signature, Class clazz, Obj
}

public static<A,B,R> JFunction function(String name, FnVarArgs<R> func, String signature) {
return new JFunction(func.getJFunctionCallable(), signature);
return new JFunction(name, func.getJFunctionCallable(), signature);
}
public static<A,R> JFunction function(String name, Fn0<R> func, String signature) {
return new JFunction(func.getJFunctionCallable(), signature);
return new JFunction(name, func.getJFunctionCallable(), signature);
}
public static<A,B,R> JFunction function(String name, Fn1<A,R> func, String signature) {
return new JFunction(func.getJFunctionCallable(), signature);
return new JFunction(name, func.getJFunctionCallable(), signature);
}
public static<A,B,R> JFunction function(String name, Fn2<A,B,R> func, String signature) {
return new JFunction(func.getJFunctionCallable(), signature);
return new JFunction(name, func.getJFunctionCallable(), signature);
}
public static<A,B,C,R> JFunction function(String name, Fn3<A,B,C,R> func, String signature) {
return new JFunction(func.getJFunctionCallable(), signature);
return new JFunction(name, func.getJFunctionCallable(), signature);
}
public static<A,B,C,D,R> JFunction function(String name, Fn4<A,B,C,D,R> func, String signature) {
return new JFunction(func.getJFunctionCallable(), signature);
return new JFunction(name, func.getJFunctionCallable(), signature);
}
public static<A,B,C,D,E,R> JFunction function(String name, Fn5<A,B,C,D,E,R> func, String signature) {
return new JFunction(func.getJFunctionCallable(), signature);
return new JFunction(name, func.getJFunctionCallable(), signature);
}
public static<A,B,C,D,E,F,R> JFunction function(String name, Fn6<A,B,C,D,E,F,R> func, String signature) {
return new JFunction(func.getJFunctionCallable(), signature);
return new JFunction(name, func.getJFunctionCallable(), signature);
}
public static<A,B,C,D,E,F,G,R> JFunction function(String name, Fn7<A,B,C,D,E,F,G,R> func, String signature) {
return new JFunction(func.getJFunctionCallable(), signature);
return new JFunction(name, func.getJFunctionCallable(), signature);
}
public static<A,B,C,D,E,F,G,H,R> JFunction function(String name, Fn8<A,B,C,D,E,F,G,H,R> func, String signature) {
return new JFunction(func.getJFunctionCallable(), signature);
return new JFunction(name, func.getJFunctionCallable(), signature);
}

/**
Expand Down Expand Up @@ -2226,6 +2226,14 @@ public JFunction(JFunctionCallable function, String signature) {
this.signature = new Signature(signature, function.getClass().getName());
}

public JFunction(String functionName, JFunctionCallable function, String signature) {
this.function = function;
this.functionName = functionName;
if (signature!=null)
// use classname as default, gets overwritten once the function is registered
this.signature = new Signature(signature, functionName + " (" + function.getClass().getName() + ")");
}

public JFunction(String functionName, String signature, Class clz, Object instance, String implMethodName) {
this.functionName = functionName;
this.signature = new Signature(signature, functionName);
Expand Down
Loading