/**
  * Cleans up the {@link MockDataLog} records. This is kind of expensive to attach to every
  * DataObject for every delete, but fortunately this module is never used in production.
  */
 public function onBeforeDelete()
 {
     $log = MockDataLog::get()->filter(array("RecordClass" => $this->owner->ClassName, "RecordID" => $this->owner->ID))->first();
     if ($log) {
         $log->delete();
     }
 }
 /**
  * Deletes mock data records using references in {@link MockDataLog}
  *
  * @param string The class of records to delete
  */
 protected function cleanup($className)
 {
     $classes = $className == "__all__" ? MockDataLog::get()->column('RecordClass') : array($className);
     foreach ($classes as $recordClass) {
         $logs = MockDataLog::get()->filter(array('RecordClass' => $recordClass));
         $ids = $logs->column('RecordID');
         $list = DataList::create($recordClass)->byIDs($ids);
         $this->writeOut("Deleting " . $list->count() . " {$recordClass} records");
         $list->removeAll();
         $this->writeOut("Done.");
         $logs->removeAll();
     }
 }