MDL-21432 backup - allow conditional (dynamic) execution of structure steps
authorEloy Lafuente <stronk7@moodle.org>
Tue, 13 Jul 2010 09:34:24 +0000 (09:34 +0000)
committerEloy Lafuente <stronk7@moodle.org>
Tue, 13 Jul 2010 09:34:24 +0000 (09:34 +0000)
backup/util/plan/backup_structure_step.class.php

index 500852f..f07a248 100644 (file)
@@ -48,6 +48,10 @@ abstract class backup_structure_step extends backup_step {
 
     public function execute() {
 
+        if (!$this->execute_condition()) { // Check any condition to execute this
+            return;
+        }
+
         $fullpath = $this->task->get_taskbasepath();
 
         // We MUST have one fullpath here, else, error
@@ -95,6 +99,18 @@ abstract class backup_structure_step extends backup_step {
 
 // Protected API starts here
 
+    /**
+     * To conditionally decide if one step will be executed or no
+     *
+     * For steps needing to be executed conditionally, based in dynamic
+     * conditions (at execution time vs at declaration time) you must
+     * override this function. It will return true if the step must be
+     * executed and false if not
+     */
+    protected function execute_condition() {
+        return true;
+    }
+
     /**
      * Function that will return the structure to be processed by this backup_step.
      * Must return one backup_nested_element