docs: public void setValue(Object newValue)
      {
      	if (FieldMetadata.NOT_KNOWN.equals(newValue))
      	{
              setUnknown(false);
              m_notKnown = true;
              return;
      		//throw new RuntimeException("Inconsistent use of NOT_KNOWN");
      	}
      	if (FieldMetadata.UNKNOWN.equals(newValue))
      	{
              setUnknown(true);
              m_notKnown = false;
              return;
      		//throw new RuntimeException("Inconsistent use of UNKNOWN");
      	}
          if (isDerived() && !ValidationUtils.equals(m_currentValue,newValue))
          {
              final String labelName = getPropertyMetadata().getLabelName();
              final String message = m_messageSourceAccessor.getMessage(
                      "nz.co.senanque.validationengine.derivedValue",
                      new Object[]
                      { labelName, newValue }, 
                      "Cannot set derived field.");
              throw new ValidationException(message);
          }
          m_currentValue = newValue;
          useCurrentValue(true);
          setUnknown(false);
          m_notKnown = false;
          
          addHistory(newValue);
      }