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);
 }