Skip to content

Commit

Permalink
feat(api): PlainLoadingCache
Browse files Browse the repository at this point in the history
  • Loading branch information
WakelessSloth56 committed Sep 27, 2022
1 parent 14afc44 commit 10df0c2
Showing 1 changed file with 40 additions and 0 deletions.
@@ -0,0 +1,40 @@
package org.auioc.mcmod.arnicalib.api.java.cache;

import java.util.HashMap;
import java.util.function.Function;
import javax.annotation.Nonnull;

public class PlainLoadingCache<K, V> implements LoadingCache<K, V> {

private final HashMap<K, V> map = new HashMap<K, V>();
private final Function<K, V> loader;

public PlainLoadingCache(Function<K, V> loader) {
this.loader = loader;
}

@Nonnull
@Override
public V get(K key) {
return (map.containsKey(key)) ? map.get(key) : load(key);
}

@Nonnull
@Override
public V load(K key) {
V value = loader.apply(key);
map.put(key, value);
return value;
}


@Override
public void clear() {
map.clear();
}

public void refresh(K key) {
load(key);
}

}

0 comments on commit 10df0c2

Please sign in to comment.