Beispiel #1
0
 /**
  *
  * @return array data to be serialized
  */
 public function getData()
 {
     $data = array();
     if ($this->isChild()) {
         $data['parent'] = $this->_parent->getExperimentID();
     }
     if ($this->isMultiVar()) {
         $data['children'] = array_keys($this->_children);
     }
     $data['weightings'] = $this->getWeightings();
     return $data;
 }
Beispiel #2
0
 /**
  * Get an existing treatment.
  *
  * Retrieve the current treatment in use by a Experiment/id combo. Returns null if not yet in use.
  *
  * @param Scenario_Experiment $experiment
  * @param Scenario_Identity $id
  * @return Scenario_Treatment|null
  */
 public function GetTreatmentForIdentity(Scenario_Experiment $experiment, Scenario_Identity $id)
 {
     if ($experiment->getRowID() === null) {
         $parent = $experiment->getParent();
         $experiment_id = $this->GetExperimentID($experiment->getExperimentID(), $parent === null ? null : $parent->getRowID());
     } else {
         $experiment_id = $experiment->getRowID();
     }
     if ($experiment_id == null) {
         return null;
     }
     $query = $this->getDbAdapter()->select()->from($this->usersTreatmentsTable)->joinLeft($this->treatmentsTable, $this->treatmentsTable . '.id = ' . $this->usersTreatmentsTable . '.treatment_id')->where('identity = ?', $id->getDbIdent())->where($this->treatmentsTable . '.experiment_id = ?', $experiment_id);
     $result = $this->getDbAdapter()->fetchRow($query);
     if ($result === false) {
         return null;
     }
     /**
      * @see Scenario_Treatment
      */
     require_once 'Scenario/Treatment.php';
     return new Scenario_Treatment($result['name'], $experiment, $result['id']);
 }
Beispiel #3
0
 /**
  * Get an existing treatment.
  *
  * Retrieve the current treatment in use by a Experiment/id combo. Returns null if not yet in use.
  *
  * @param Scenario_Experiment $experiment
  * @param Scenario_Identity $id
  * @return Scenario_Treatment|null
  */
 public function GetTreatmentForIdentity(Scenario_Experiment $experiment, Scenario_Identity $id)
 {
     $experiment_id = $this->GetExperimentID($experiment->getExperimentID());
     if ($experiment_id == null) {
         return null;
     }
     $sql = 'SELECT * FROM `' . $this->usersTreatmentsTable . '` LEFT JOIN `' . $this->treatmentsTable . '` ON ' . $this->treatmentsTable . '.id = ' . $this->usersTreatmentsTable . '.treatment_id ' . 'WHERE identity = ? AND ' . $this->treatmentsTable . '.experiment_id = ?';
     $result = $this->prepare($sql, array($id->getDbIdent(), $experiment_id))->fetch(PDO::FETCH_ASSOC);
     if ($result === false) {
         return null;
     }
     /**
      * @see Scenario_Treatment
      */
     require_once 'Scenario/Treatment.php';
     return new Scenario_Treatment($result['name'], $experiment, $result['id']);
 }