com.arcadedb.function.FunctionLibraryDefinition Maven / Gradle / Ivy
package com.arcadedb.function;/*
* Copyright © 2021-present Arcade Data Ltd ([email protected])
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* A function library manages executable functions.
*
* @author Luca Garulli ([email protected])
*/
public interface FunctionLibraryDefinition {
/**
* Returns the name of the library.
*/
String getName();
/**
* Returns an iterable of the defined functions.
*/
Iterable getFunctions();
/**
* Returns a function by its name
*
* @param functionName Name of the function to retrieve
*
* @throws IllegalArgumentException If the function was not defined
*/
T getFunction(String functionName) throws IllegalArgumentException;
/**
* Returns true if the function was defined, otherwise false.
*
* @param functionName Name of the function to look up to
*/
boolean hasFunction(String functionName);
/**
* Registers a new function in the library.
*
* @param registerFunction function object to register
*/
FunctionLibraryDefinition registerFunction(T registerFunction);
/**
* Unregister a function from the library by its name.
*
* @param functionName Name of the function to unregister
*/
FunctionLibraryDefinition unregisterFunction(String functionName);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy