List of usage examples for com.google.common.collect ImmutableListMultimap of
public static <K, V> ImmutableListMultimap<K, V> of(K k1, V v1, K k2, V v2)
From source file:com.tinspx.util.example.Collect.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void selector() {
Function<Object, String> search = CollectUtils.selector()
//select value mapped to "a" in a Map or Multimap
.key("a")
//select the first value that is a Multimap
.value(Predicates.instanceOf(Multimap.class))
//select value mapped to "b" in a Map or Multimap
.key("b")
//select the value at index 1 (the second element)
.value(1)// w w w . j ava2 s. c o m
//build the Function expecting a String result
.get(String.class);
//create the object to traverse, this can contain any hierarchy
//of Collection, List, Set, Multiset, Map, Multimap, Table
Map map = MapUtils.newMutableSingletonMap("a",
Arrays.asList(null, ImmutableListMultimap.of("b", "b-1", "b", "b-2")));
String result = search.apply(map);
System.out.println("map: " + map);
System.out.println("result: " + result);
//prints
//map: {a=[null, {b=[b-1, b-2]}]}
//result: b-2
//now slightly modify the map so the search will fail
map.put("a", Arrays.asList(null, ImmutableListMultimap.of("b", "b-1",
//second value mapped to "b" is an Integer instead
//of a String so the search will fail
"b", 1)));
result = search.apply(map);
System.out.println("map: " + map);
System.out.println("result: " + result);
//prints
//{a=[null, {b=[b-1, 1]}]}
//null
}