/** * @param ActionDimension|ConversionDimension|VisitDimension $dimension * @param string $componentPrefix * @param array $existingColumnsInDb * @param array $conversionColumns * @return array */ private static function getUpdatesForDimension($dimension, $componentPrefix, $existingColumnsInDb, $conversionColumns = array()) { $column = $dimension->getColumnName(); $componentName = $componentPrefix . $column; if (!self::hasComponentNewVersion($componentName)) { return array(); } if (array_key_exists($column, $existingColumnsInDb)) { if ($dimension instanceof VisitDimension) { $sqlUpdates = $dimension->update($conversionColumns); } else { $sqlUpdates = $dimension->update(); } } else { $sqlUpdates = $dimension->install(); } return $sqlUpdates; }