public Set<Validator> getDisabledValidatorsFor(IResource resource) { LRUSet set = _map.get(resource); if (set != null) { set.counter = _counter.getAndIncrement(); return set.validators; } DisabledValidationFinder dvf = new DisabledValidationFinder(); Set<Validator> vset = dvf.findDisabledValidatorsFor(resource); insert(resource, vset); return vset; }
private synchronized void insert(IResource resource, Set<Validator> vset) { if (_map.size() >= CacheSize) { IResource oldest = null; int current = Integer.MAX_VALUE; for (Map.Entry<IResource, LRUSet> me : _map.entrySet()) { if (me.getValue().counter < current) { oldest = me.getKey(); current = me.getValue().counter; } } _map.remove(oldest); } LRUSet set = new LRUSet(); set.counter = _counter.getAndIncrement(); set.validators = vset; _map.put(resource, set); }