code: @Override
  	public <T> T get(final String key, final T defaultValue, DomainResolver resolver) {
  		final String trimmedKey = trimKey(key);
  		KeyValues keyValues = valuesStore.getKeyValuesFromMapOrPersistence(trimmedKey);
  		T result;
  		if (keyValues == null) {
  			result = defaultValue;
  		} else {
  			result = keyValues.get(domains, defaultValue, resolver);
  		}
  		if (LOGGER.isDebugEnabled()) {
  			LOGGER.debug("Getting value for key: '{}' with given default: '{}'. Returning value: '{}'", trimmedKey, defaultValue, result);
  			StringBuilder builder = new StringBuilder("DomainValues: ");
  			for (String domain : domains) {
  				builder.append(domain).append(" => ").append(resolver.getDomainValue(domain)).append("; ");
  			}
  			LOGGER.debug(builder.toString());
  		}
  		return result;
  	}
docs: /* (non-Javadoc)
  @see com.parship.roperty.Roperty#get(java.lang.String, T, com.parship.roperty.DomainResolver)