code: protected static Object protectNull(Object rawAttributeValue, AttributeType type) {
  		if (rawAttributeValue == null) {
  			if (type.isNullAllowed()) {
  				return new NullAttribute(type);
  			}
  			throw new NullPointerException();
  		}
  		return rawAttributeValue;
  	}
docs: Ensure that the <code>null</code> value for {@code rawAttributeValue}
  is catched and replaced by a dedicated representant object.
  This function permits to keep the type of a value even if it is <code>null</code>.
  
  @param rawAttributeValue is the value to protect.
  @param type is the type of the attribute to preserve over time.
  @return the value, or the representant of the java <code>null</code> value.
  @see #unprotectNull(Object)