code: @Override
  	public void addAttributeValue(String name, Object value,
  			boolean addIfDuplicateExists) {
  		if (!updateMode && value != null) {
  			Attribute attr = originalAttrs.get(name);
  			if (attr == null) {
  				originalAttrs.put(name, value);
  			}
  			else {
  				attr.add(value);
  			}
  		}
  		else if (updateMode) {
  			Attribute attr = updatedAttrs.get(name);
  			if (attr == null) {
  				if (originalAttrs.get(name) == null) {
  					// No match in the original attributes -
  					// add a new Attribute to updatedAttrs
  					updatedAttrs.put(name, value);
  				}
  				else {
  					// The attribute exists in the original attributes - clone
  					// that and add the new entry to it
  					attr = (Attribute) originalAttrs.get(name).clone();
  					if (addIfDuplicateExists || !attr.contains(value)) {
  						attr.add(value);
  					}
  					updatedAttrs.put(attr);
  				}
  			}
  			else {
  				attr.add(value);
  			}
  		}
  	}
docs: {@inheritDoc}