jaulib v1.3.0
Jau Support Library (C++, Java, ..)
Function.java
Go to the documentation of this file.
1/**
2 * Author: Sven Gothel <sgothel@jausoft.com>
3 * Copyright (c) 2021 Gothel Software e.K.
4 * Copyright (c) 2014 Gothel Software e.K.
5 * Copyright (c) 2014 JogAmp Community.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining
8 * a copy of this software and associated documentation files (the
9 * "Software"), to deal in the Software without restriction, including
10 * without limitation the rights to use, copy, modify, merge, publish,
11 * distribute, sublicense, and/or sell copies of the Software, and to
12 * permit persons to whom the Software is furnished to do so, subject to
13 * the following conditions:
14 *
15 * The above copyright notice and this permission notice shall be
16 * included in all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 */
26package org.jau.util;
27
28/**
29 * Generic function interface to perform an action w/ given optional arguments
30 * producing an optional result.
31 * <p>
32 * For <code>void</code> functions, simply use type <code>Object</code>
33 * and ignore the result and/or arguments.
34 * </p>
35 *
36 * @param <T> the result type of {@link #eval(Object...)}
37 */
38public interface Function<R,A> {
39 /**
40 * Implementation may compute variable <code>args</code> list
41 * and returns a result.
42 *
43 * @param args variable argument list, <code>A[]</code>, maybe null
44 * @return the result.
45 */
46 @SuppressWarnings({"unchecked"})
47 R eval(A... args);
48}
Generic function interface to perform an action w/ given optional arguments producing an optional res...
Definition: Function.java:38
R eval(A... args)
Implementation may compute variable args list and returns a result.