]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/common/BoundingBoxCache.java
6b76b9c19e4ddf6275c8c0f2fef1765383c0e5e5
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / common / BoundingBoxCache.java
1 package com.irtimaled.bbor.common;
2
3 import com.irtimaled.bbor.common.models.BoundingBox;
4
5 import java.util.HashSet;
6 import java.util.Map;
7 import java.util.Set;
8 import java.util.concurrent.ConcurrentHashMap;
9
10 public class BoundingBoxCache {
11     private Map<BoundingBox, Set<BoundingBox>> cache = new ConcurrentHashMap<>();
12
13     public Map<BoundingBox, Set<BoundingBox>> getBoundingBoxes() {
14         return cache;
15     }
16
17     public void close() {
18         cache.clear();
19     }
20
21     public boolean isCached(BoundingBox key) {
22         return cache.containsKey(key);
23     }
24
25     public void addBoundingBoxes(BoundingBox key, Set<BoundingBox> boundingBoxes) {
26         cache.put(key, boundingBoxes);
27     }
28
29     public void addBoundingBox(BoundingBox key) {
30         Set<BoundingBox> boundingBoxes = new HashSet<>();
31         boundingBoxes.add(key);
32         addBoundingBoxes(key, boundingBoxes);
33     }
34
35     public void removeBoundingBox(BoundingBox key) {
36         cache.remove(key);
37     }
38 }