code: @Override
      public ENTRY get(final KEY key) throws CouldNotPerformException {
          if (key == null) {
              throw new NotAvailableException("key");
          }
          verifyID(key);
          registryLock.readLock().lock();
          try {
              if (!entryMap.containsKey(key)) {
  
                  if (entryMap.isEmpty()) {
                      throw new NotAvailableException("Entry", key.toString(), new InvalidStateException(this + " is empty!"));
                  }
  
                  TreeMap<KEY, ENTRY> sortedMap = new TreeMap<>((KEY o1, KEY o2) -> {
                      if (o1 instanceof String && o2 instanceof String) {
                          return ((String) o1).toLowerCase().compareTo(((String) o2).toLowerCase());
                      } else if (o1 instanceof Comparable && o2 instanceof Comparable) {
                          return ((Comparable) o1).compareTo((o2));
                      }
                      return (o1).toString().compareTo(o2.toString());
                  });
                  sortedMap.putAll(entryMap);
  
                  if (sortedMap.floorKey(key) != null && sortedMap.ceilingKey(key) != null) {
                      throw new NotAvailableException("Entry", key.toString(), "Nearest neighbor is " + get(sortedMap.floorKey(key)) + " or " + get(sortedMap.ceilingKey(key)) + ".");
                  } else if (sortedMap.floorKey(key) != null) {
                      throw new NotAvailableException("Entry", key.toString(), "Nearest neighbor is " + get(sortedMap.floorKey(key)) + ".");
                  } else if (sortedMap.ceilingKey(key) != null) {
                      throw new NotAvailableException("Entry", key.toString(), "Nearest neighbor is " + get(sortedMap.ceilingKey(key)) + ".");
                  } else {
                      throw new InvalidStateException("Implementation error, case not handled.");
                  }
              }
              pluginPool.beforeGet(key);
              return entryMap.get(key);
          } finally {
              registryLock.readLock().unlock();
          }
      }
docs: {@inheritDoc}
  
  @param key {@inheritDoc}
  
  @return {@inheritDoc}
  
  @throws CouldNotPerformException {@inheritDoc}