org.apache.logging.log4j.core.lookup
Class MapLookup<V>

java.lang.Object
  extended by org.apache.logging.log4j.core.lookup.MapLookup<V>
Type Parameters:
V - The type of object contained in the Map.
All Implemented Interfaces:
StrLookup<V>

public class MapLookup<V>
extends Object
implements StrLookup<V>

The basis for a lookup based on a Map.


Constructor Summary
MapLookup()
          Constructor when used directly as a plugin.
MapLookup(Map<String,V> map)
          Creates a new instance backed by a Map.
 
Method Summary
 String lookup(LogEvent event, String key)
          Looks up a String key to a String value possibly using the current LogEvent.
 String lookup(String key)
          Looks up a String key to a String value using the map.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MapLookup

public MapLookup(Map<String,V> map)
Creates a new instance backed by a Map. Used by the default lookup.

Parameters:
map - the map of keys to values, may be null

MapLookup

public MapLookup()
Constructor when used directly as a plugin.

Method Detail

lookup

public String lookup(String key)
Looks up a String key to a String value using the map.

If the map is null, then null is returned. The map result object is converted to a string using toString().

Specified by:
lookup in interface StrLookup<V>
Parameters:
key - the key to be looked up, may be null
Returns:
the matching value, null if no match

lookup

public String lookup(LogEvent event,
                     String key)
Description copied from interface: StrLookup
Looks up a String key to a String value possibly using the current LogEvent.

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.

The StrLookup.lookup(String) method always returns a String, regardless of the underlying data, by converting it as necessary. For example:

 Map map = new HashMap();
 map.put("number", new Integer(2));
 assertEquals("2", StrLookup.mapLookup(map).lookup("number"));
 

Specified by:
lookup in interface StrLookup<V>
Parameters:
event - The current LogEvent.
key - the key to be looked up, may be null
Returns:
the matching value, null if no match


Copyright © 1999-2012 Apache Software Foundation. All Rights Reserved. Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, and the Apache Logging project logo are trademarks of The Apache Software Foundation.