code: public void addObject(final T _object)
      {
          final Map<Long, T> newCache4Id =  getNewCache4Id();
          final Map<String, T> newCache4Name = getNewCache4Name();
          final Map<UUID, T>  newCache4UUID = getNewCache4UUID();
  
          if (getCache4Id() != null) {
              newCache4Id.putAll(getCache4Id());
          }
  
          if (getCache4Name() != null) {
              newCache4Name.putAll(getCache4Name());
          }
  
          if (getCache4UUID() != null) {
              newCache4UUID.putAll(getCache4UUID());
          }
  
          newCache4Id.put(_object.getId(), _object);
          newCache4Name.put(_object.getName(), _object);
          newCache4UUID.put(_object.getUUID(), _object);
  
          // replace old cache with new values
          // it is thread save because of volatile
          setCache4Id(newCache4Id);
          setCache4Name(newCache4Name);
          setCache4UUID(newCache4UUID);
      }
docs: Add an object to this Cache. This method should only be used to add some
  objects, due to the reason that it is very slow!!! Normally the values
  should be added by using abstract method
  {@link #readCache(Map, Map, Map)}.
  
  @param _object Object to be added