public static void addPrivateFunction(FunctionIdentifier fi, IResultTypeComputer typeComputer, boolean isFunctional) { IFunctionInfo functionInfo = new FunctionInfo(fi, isFunctional); builtinPrivateFunctionsSet.put(functionInfo, functionInfo); funTypeComputer.put(functionInfo, typeComputer); registeredFunctions.put(fi, functionInfo); }
@Override public int hashCode() { return toString().hashCode(); }
@Override public boolean equals(Object o) { if (!(o instanceof FunctionInfo)) { return false; } FunctionInfo info = (FunctionInfo) o; return functionIdentifier.equals(info.getFunctionIdentifier()) && functionIdentifier.getArity() == info.getFunctionIdentifier().getArity(); }
protected FunctionIdentifier getBuiltinFunctionIdentifier(String functionName, int arity) { FunctionIdentifier fi = new FunctionIdentifier(AlgebricksBuiltinFunctions.ALGEBRICKS_NS, functionName, arity); FunctionInfo afi = BuiltinFunctions.lookupFunction(fi); FunctionIdentifier builtinAquafi = afi == null ? null : afi.getFunctionIdentifier(); if (builtinAquafi != null) { fi = builtinAquafi; } else { fi = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, functionName, arity); afi = BuiltinFunctions.lookupFunction(fi); if (afi == null) { return null; } } return fi; }
public static void addFunctionWithDomain(FunctionIdentifier fi, ATypeHierarchy.Domain funcDomain, IResultTypeComputer typeComputer, boolean isFunctional) { IFunctionInfo functionInfo = new FunctionInfo(fi, isFunctional); builtinPublicFunctionsSet.put(functionInfo, functionInfo); funTypeComputer.put(functionInfo, typeComputer); registeredFunctions.put(fi, functionInfo); registeredFunctionsDomain.put(functionInfo, funcDomain); }