1 /*
2 * SPDX-FileCopyrightText: none
3 * SPDX-License-Identifier: CC0-1.0
4 */
5
6 package gov.nist.secauto.metaschema.core.metapath.function;
7
8 import gov.nist.secauto.metaschema.core.metapath.StaticMetapathException;
9 import gov.nist.secauto.metaschema.core.qname.IEnhancedQName;
10
11 import edu.umd.cs.findbugs.annotations.NonNull;
12
13 @FunctionalInterface
14 public interface IFunctionResolver {
15 /**
16 * Retrieve the function with the provided name that supports the signature of
17 * the provided methods, if such a function exists.
18 *
19 * @param name
20 * the name of a group of functions
21 * @param arity
22 * the count of arguments for use in determining an argument signature
23 * match
24 * @return the matching function or {@code null} if no match exists
25 * @throws StaticMetapathException
26 * with the code {@link StaticMetapathException#NO_FUNCTION_MATCH} if
27 * a matching function was not found
28 */
29 @NonNull
30 IFunction getFunction(@NonNull IEnhancedQName name, int arity);
31 }