X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FObjectCache.java;h=0d9fc14ba51b4f2d0e4005a3977367bdd3c66ff5;hp=5f44542200458467c535b959266dde527e4a098b;hb=b47144d6f3bf6b6eb1ec477de9d2af38256f074f;hpb=e409ba881965634f63f0b67824bc93dda4ec4327 diff --git a/src/org/cacert/gigi/dbObjects/ObjectCache.java b/src/org/cacert/gigi/dbObjects/ObjectCache.java index 5f445422..0d9fc14b 100644 --- a/src/org/cacert/gigi/dbObjects/ObjectCache.java +++ b/src/org/cacert/gigi/dbObjects/ObjectCache.java @@ -2,13 +2,21 @@ package org.cacert.gigi.dbObjects; import java.lang.ref.WeakReference; import java.util.HashMap; +import java.util.HashSet; public class ObjectCache { - HashMap> hashmap = new HashMap<>(); + private final HashMap> hashmap = new HashMap<>(); - public void put(T c) { + private static final HashSet> caches = new HashSet<>(); + + protected ObjectCache() { + caches.add(this); + } + + public T put(T c) { hashmap.put(c.getId(), new WeakReference(c)); + return c; } public T get(int id) { @@ -18,4 +26,14 @@ public class ObjectCache { } return null; } + + public static void clearAllCaches() { + for (ObjectCache objectCache : caches) { + objectCache.hashmap.clear(); + } + } + + public void remove(T toRm) { + hashmap.remove(toRm); + } }