blob: 63615f4921951a546784a5373589a9332e49c32a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package org.onap.vid.aai.util;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static org.apache.commons.lang3.ObjectUtils.defaultIfNull;
public interface CacheProvider {
String KEY_DELIMITER = "!@#'";
/*
Returns the cache associated with given name; creates one if wasn't any
*/
<K, V> Cache<K, V> aaiClientCacheFor(String name, Function<K, V> loader);
/*
reset cache if exist. Otherwise do nothing
*/
void resetCache(String name);
interface Cache<K, V> {
V get(K key);
}
static String compileKey(List<String> args) {
return compileKey(args.toArray(new String[0]));
}
static String compileKey(String... args) {
return Stream.of(args).map(arg->defaultIfNull(arg, "")).collect( Collectors.joining( KEY_DELIMITER ) );
}
static String[] decompileKey(String key) {
return key.split(KEY_DELIMITER);
}
}
|