Skip to content

Commit c1353a1

Browse files
arturobernalgok2c
authored andcommitted
IOFunction functional interface
1 parent c301f22 commit c1353a1

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* ====================================================================
3+
* Licensed to the Apache Software Foundation (ASF) under one
4+
* or more contributor license agreements. See the NOTICE file
5+
* distributed with this work for additional information
6+
* regarding copyright ownership. The ASF licenses this file
7+
* to you under the Apache License, Version 2.0 (the
8+
* "License"); you may not use this file except in compliance
9+
* with the License. You may obtain a copy of the License at
10+
*
11+
* http://www.apache.org/licenses/LICENSE-2.0
12+
*
13+
* Unless required by applicable law or agreed to in writing,
14+
* software distributed under the License is distributed on an
15+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
* KIND, either express or implied. See the License for the
17+
* specific language governing permissions and limitations
18+
* under the License.
19+
* ====================================================================
20+
*
21+
* This software consists of voluntary contributions made by many
22+
* individuals on behalf of the Apache Software Foundation. For more
23+
* information on the Apache Software Foundation, please see
24+
* <http://www.apache.org/>.
25+
*
26+
*/
27+
28+
package org.apache.hc.core5.function;
29+
30+
import java.io.IOException;
31+
32+
/**
33+
* Minimal equivalent of {@link java.util.function.Function} whose
34+
* {@link #apply(Object)} method is allowed to throw {@link IOException}.
35+
*
36+
* @param <T> input type
37+
* @param <R> result type
38+
* @since 5.4
39+
*/
40+
@FunctionalInterface
41+
public interface IOFunction<T, R> {
42+
43+
/**
44+
* Applies the transformation.
45+
*
46+
* @param value source value (never {@code null})
47+
* @return transformed value
48+
* @throws IOException if the transformation cannot be performed
49+
*/
50+
R apply(T value) throws IOException;
51+
52+
}

0 commit comments

Comments
 (0)