Class BiFunctionStringLookup<P,​R>

  • Type Parameters:
    R - A function's return type
    P - A function's second input type
    All Implemented Interfaces:
    BiStringLookup<P>, StringLookup

    final class BiFunctionStringLookup<P,​R>
    extends java.lang.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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.function.BiFunction<java.lang.String,​P,​R> biFunction
      Function.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private BiFunctionStringLookup​(java.util.function.BiFunction<java.lang.String,​P,​R> biFunction)
      Creates a new instance backed by a Function.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String lookup​(java.lang.String key)
      Looks up a String key to provide a String value.
      java.lang.String lookup​(java.lang.String key, P object)
      Looks up a String key by applying the function.
      (package private) static <U,​T>
      BiFunctionStringLookup<U,​T>
      on​(java.util.function.BiFunction<java.lang.String,​U,​T> biFunction)
      Creates a new instance backed by a Function.
      (package private) static <U,​T>
      BiFunctionStringLookup<U,​T>
      on​(java.util.Map<java.lang.String,​T> map)
      Creates a new instance backed by a Map.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • biFunction

        private final java.util.function.BiFunction<java.lang.String,​P,​R> biFunction
        Function.
    • Constructor Detail

      • BiFunctionStringLookup

        private BiFunctionStringLookup​(java.util.function.BiFunction<java.lang.String,​P,​R> biFunction)
        Creates a new instance backed by a Function.
        Parameters:
        biFunction - the function, may be null.
    • Method Detail

      • on

        static <U,​T> BiFunctionStringLookup<U,​T> on​(java.util.function.BiFunction<java.lang.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​(java.util.Map<java.lang.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 java.lang.String lookup​(java.lang.String key)
        Description copied from interface: StringLookup
        Looks 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:
        lookup in interface StringLookup
        Parameters:
        key - the key to look up, may be null.
        Returns:
        The matching value, null if no match.
      • lookup

        public java.lang.String lookup​(java.lang.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:
        lookup in interface BiStringLookup<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.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object