public CacheKey addAttribute(final String key, final String value) {
    """
	Add a custom key-value pair attribute. Each pair is added to an internal map. The custom attributes can be used to
	make the key more fine grained (Ex: based on browser version or a request parameter). Both elements of the
	attribute (key & value) should be not null. If any of these are null, the attribute won't be added.
	
	@param key
	string representing the key of the attribute.
	@param value
	string representing the value of the attribute.
	@return reference to current {@link CacheKey} used for fluent interface.
    """
    if (key != null && value != null) {
      map.put(key, value);
    }
    return this;
  }
public CacheKey addAttribute(final String key, final String value) {
    if (key != null && value != null) {
      map.put(key, value);
    }
    return this;
  }
public CacheKey addAttribute ( final String key , final String value ) { if ( key != null && value != null ) { map . put ( key , value ) ; } return this ; }
Add a custom key-value pair attribute. Each pair is added to an internal map. The custom attributes can be used to
make the key more fine grained (Ex: based on browser version or a request parameter). Both elements of the
attribute (key & value) should be not null. If any of these are null, the attribute won't be added.

@param key
string representing the key of the attribute.
@param value
string representing the value of the attribute.
@return reference to current {@link CacheKey} used for fluent interface.
Add a custom key - value pair attribute . Each pair is added to an internal map . The custom attributes can be used to make the key more fine grained ( Ex : based on browser version or a request parameter ) . Both elements of the attribute ( key & value ) should be not null . If any of these are null the attribute won t be added .