Skip to content

Commit a94c1f4

Browse files
committed
ISSUE-116: func name
1 parent bf8ec3a commit a94c1f4

1 file changed

Lines changed: 19 additions & 11 deletions

File tree

src/main/java/com/dashjoin/jsonata/Jsonata.java

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1501,7 +1501,7 @@ Object evaluateTransformExpression(Symbol expr, Object input, Frame environment)
15011501
return result;
15021502
};
15031503

1504-
return new JFunction(transformer, "<(oa):o>");
1504+
return new JFunction("evaluateTransform", transformer, "<(oa):o>");
15051505
}
15061506

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

20472047
public static<A,B,R> JFunction function(String name, FnVarArgs<R> func, String signature) {
2048-
return new JFunction(func.getJFunctionCallable(), signature);
2048+
return new JFunction(name, func.getJFunctionCallable(), signature);
20492049
}
20502050
public static<A,R> JFunction function(String name, Fn0<R> func, String signature) {
2051-
return new JFunction(func.getJFunctionCallable(), signature);
2051+
return new JFunction(name, func.getJFunctionCallable(), signature);
20522052
}
20532053
public static<A,B,R> JFunction function(String name, Fn1<A,R> func, String signature) {
2054-
return new JFunction(func.getJFunctionCallable(), signature);
2054+
return new JFunction(name, func.getJFunctionCallable(), signature);
20552055
}
20562056
public static<A,B,R> JFunction function(String name, Fn2<A,B,R> func, String signature) {
2057-
return new JFunction(func.getJFunctionCallable(), signature);
2057+
return new JFunction(name, func.getJFunctionCallable(), signature);
20582058
}
20592059
public static<A,B,C,R> JFunction function(String name, Fn3<A,B,C,R> func, String signature) {
2060-
return new JFunction(func.getJFunctionCallable(), signature);
2060+
return new JFunction(name, func.getJFunctionCallable(), signature);
20612061
}
20622062
public static<A,B,C,D,R> JFunction function(String name, Fn4<A,B,C,D,R> func, String signature) {
2063-
return new JFunction(func.getJFunctionCallable(), signature);
2063+
return new JFunction(name, func.getJFunctionCallable(), signature);
20642064
}
20652065
public static<A,B,C,D,E,R> JFunction function(String name, Fn5<A,B,C,D,E,R> func, String signature) {
2066-
return new JFunction(func.getJFunctionCallable(), signature);
2066+
return new JFunction(name, func.getJFunctionCallable(), signature);
20672067
}
20682068
public static<A,B,C,D,E,F,R> JFunction function(String name, Fn6<A,B,C,D,E,F,R> func, String signature) {
2069-
return new JFunction(func.getJFunctionCallable(), signature);
2069+
return new JFunction(name, func.getJFunctionCallable(), signature);
20702070
}
20712071
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) {
2072-
return new JFunction(func.getJFunctionCallable(), signature);
2072+
return new JFunction(name, func.getJFunctionCallable(), signature);
20732073
}
20742074
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) {
2075-
return new JFunction(func.getJFunctionCallable(), signature);
2075+
return new JFunction(name, func.getJFunctionCallable(), signature);
20762076
}
20772077

20782078
/**
@@ -2226,6 +2226,14 @@ public JFunction(JFunctionCallable function, String signature) {
22262226
this.signature = new Signature(signature, function.getClass().getName());
22272227
}
22282228

2229+
public JFunction(String functionName, JFunctionCallable function, String signature) {
2230+
this.function = function;
2231+
this.functionName = functionName;
2232+
if (signature!=null)
2233+
// use classname as default, gets overwritten once the function is registered
2234+
this.signature = new Signature(signature, functionName + " (" + function.getClass().getName() + ")");
2235+
}
2236+
22292237
public JFunction(String functionName, String signature, Class clz, Object instance, String implMethodName) {
22302238
this.functionName = functionName;
22312239
this.signature = new Signature(signature, functionName);

0 commit comments

Comments
 (0)