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 }