docs: @Override
  	public ValueWrapper putIfAbsent(Object key, Object value) {
  		Assert.notNull(key, "key parameter is mandatory");
  		Assert.isAssignable(String.class, key.getClass());
  
  		ValueWrapper valueWrapper = get(key);
  		if (valueWrapper == null) {
  			try {
  				this.memcachedClientIF.add((String) key, this.expiration, value).get();
  			}
  			catch (InterruptedException e) {
  				Thread.currentThread().interrupt();
  			}
  			catch (ExecutionException e) {
  				throw new IllegalArgumentException("Error writing key" + key, e);
  			}
  			return null;
  		}
  		else {
  			return valueWrapper;
  		}
  	}