public function __set($key, $value)
{
// what are we doing?
$log = usingLog()->startAction("store '{$key}' in the checkpoint");
// are we allowed to change the data at this time?
if ($this->readOnly) {
// no, we are not
$log->endAction("checkpoint is readonly; did not store '{$key}'");
throw new E5xx_CheckpointIsReadOnly();
}
// if we get here, we're allowed to change the checkpoint
$this->data[$key] = $value;
// all done
$log->endAction($value);
}