code: public <E extends Enum<E>> void setProperty(T property, E value) throws IllegalArgumentException
      {
          if (value == null)
          {
              throw new IllegalArgumentException("Cannot set a null value, use reset instead");
          }
  
          setProperty(property, value.name().toLowerCase());
      }
docs: Set the given property using an Enum constant. This will not write the
  new value to the file system.<br>
  <br>
  Please note that the Enum value set here is case insensitive. See
  {@link #getEnumProperty(Object, Class)} for additional details.
  
  @see #saveProperty(Object, Enum)
  
  @param <E>
  the type of Enum value to set
  @param property
  the property whose value is being set
  @param value
  the value to set
  @throws IllegalArgumentException
  if a <code>null</code> value is given (see
  {@link #resetProperty(Object)})