docs: private Attribute extract(String name) {
  		final AttributeValue value;
  		if (this.cache.containsKey(name)) {
  			value = this.cache.get(name);
  		} else {
  			final ManyValueAttributeValue result = new ManyValueAttributeValue();
  			AttributeValue attrValue;
  			for (final AttributeProvider c : this.containers) {
  				attrValue = c.getAttribute(name);
  				assign(result, attrValue);
  			}
  			value = canonize(result);
  			this.cache.put(name, value);
  		}
  		return (value != null) ? new AttributeImpl(name, value) : null;
  	}