package org.apache.commons.lang3.text;
import java.util.Map;
public abstract class StrLookup<V>
{
private static final StrLookup<String> NONE_LOOKUP = new MapStrLookup(null);
private static final StrLookup<String> SYSTEM_PROPERTIES_LOOKUP = lookup;
public static <V> StrLookup<V> mapLookup(Map<String, V> map)
{
return new MapStrLookup(map);
}
public abstract String lookup(String paramString);
static
{
StrLookup lookup = null;
try {
Map propMap = System.getProperties();
Map properties = propMap;
lookup = new MapStrLookup(properties);
} catch (SecurityException ex) {
lookup = NONE_LOOKUP;
}
}
static class MapStrLookup<V> extends StrLookup<V>
{
private final Map<String, V> map;
MapStrLookup(Map<String, V> map)
{
this.map = map;
}
public String lookup(String key)
{
if (this.map == null) {
return null;
}
Object obj = this.map.get(key);
if (obj == null) {
return null;
}
return obj.toString();
}
}
}