Package org.apache.commons.text.lookup
Class BiFunctionStringLookup<P,R>
- java.lang.Object
-
- org.apache.commons.text.lookup.BiFunctionStringLookup<P,R>
-
- Type Parameters:
R- A function's return typeP- A function's second input type
- All Implemented Interfaces:
BiStringLookup<P>,StringLookup
final class BiFunctionStringLookup<P,R> extends Object implements BiStringLookup<P>
A function-based lookup where the request for a lookup is answered by applying that function with a key.- Since:
- 1.9
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Stringlookup(String key)Looks up a String key to provide a String value.Stringlookup(String key, P object)Looks up a String key by applying the function.(package private) static <U,T>
BiFunctionStringLookup<U,T>on(BiFunction<String,U,T> biFunction)Creates a new instance backed by a Function.(package private) static <U,T>
BiFunctionStringLookup<U,T>on(Map<String,T> map)Creates a new instance backed by a Map.StringtoString()
-
-
-
Method Detail
-
on
static <U,T> BiFunctionStringLookup<U,T> on(BiFunction<String,U,T> biFunction)
Creates a new instance backed by a Function.- Type Parameters:
T- the function's input type- Parameters:
biFunction- the function, may be null.- Returns:
- a new instance backed by the given function.
-
on
static <U,T> BiFunctionStringLookup<U,T> on(Map<String,T> map)
Creates a new instance backed by a Map. Used by the default lookup.- Type Parameters:
T- the map's value type.- Parameters:
map- the map of keys to values, may be null.- Returns:
- a new instance backed by the given map.
-
lookup
public String lookup(String key)
Description copied from interface:StringLookupLooks up a String key to provide a String value.The internal implementation may use any mechanism to return the value. The simplest implementation is to use a Map. However, virtually any implementation is possible.
For example, it would be possible to implement a lookup that used the key as a primary key, and looked up the value on demand from the database Or, a numeric based implementation could be created that treats the key as an integer, increments the value and return the result as a string - converting 1 to 2, 15 to 16 etc.
This method always returns a String, regardless of the underlying data, by converting it as necessary. For example:
Map<String, Object> map = new HashMap<String, Object>(); map.put("number", new Integer(2)); assertEquals("2", StringLookupFactory.mapStringLookup(map).lookup("number"));- Specified by:
lookupin interfaceStringLookup- Parameters:
key- the key to look up, may be null.- Returns:
- The matching value, null if no match.
-
lookup
public String lookup(String key, P object)
Looks up a String key by applying the function.If the function is null, then null is returned. The function result object is converted to a string using toString().
- Specified by:
lookupin interfaceBiStringLookup<P>- Parameters:
key- the key to be looked up, may be null.object- ignored by default.- Returns:
- The function result as a string, may be null.
-
-