| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <?php
- namespace Action_Scheduler\Migration;
- use Action_Scheduler\WP_CLI\ProgressBar;
- use ActionScheduler_Logger as Logger;
- use ActionScheduler_Store as Store;
- /**
- * Class Config
- *
- * @package Action_Scheduler\Migration
- *
- * @since 3.0.0
- *
- * A config builder for the ActionScheduler\Migration\Runner class
- */
- class Config {
- /** @var ActionScheduler_Store */
- private $source_store;
- /** @var ActionScheduler_Logger */
- private $source_logger;
- /** @var ActionScheduler_Store */
- private $destination_store;
- /** @var ActionScheduler_Logger */
- private $destination_logger;
- /** @var Progress bar */
- private $progress_bar;
- /** @var bool */
- private $dry_run = false;
- /**
- * Config constructor.
- */
- public function __construct() {
- }
- /**
- * Get the configured source store.
- *
- * @return ActionScheduler_Store
- */
- public function get_source_store() {
- if ( empty( $this->source_store ) ) {
- throw new \RuntimeException( __( 'Source store must be configured before running a migration', 'woocommerce' ) );
- }
- return $this->source_store;
- }
- /**
- * Set the configured source store.
- *
- * @param ActionScheduler_Store $store Source store object.
- */
- public function set_source_store( Store $store ) {
- $this->source_store = $store;
- }
- /**
- * Get the configured source loger.
- *
- * @return ActionScheduler_Logger
- */
- public function get_source_logger() {
- if ( empty( $this->source_logger ) ) {
- throw new \RuntimeException( __( 'Source logger must be configured before running a migration', 'woocommerce' ) );
- }
- return $this->source_logger;
- }
- /**
- * Set the configured source logger.
- *
- * @param ActionScheduler_Logger $logger
- */
- public function set_source_logger( Logger $logger ) {
- $this->source_logger = $logger;
- }
- /**
- * Get the configured destination store.
- *
- * @return ActionScheduler_Store
- */
- public function get_destination_store() {
- if ( empty( $this->destination_store ) ) {
- throw new \RuntimeException( __( 'Destination store must be configured before running a migration', 'woocommerce' ) );
- }
- return $this->destination_store;
- }
- /**
- * Set the configured destination store.
- *
- * @param ActionScheduler_Store $store
- */
- public function set_destination_store( Store $store ) {
- $this->destination_store = $store;
- }
- /**
- * Get the configured destination logger.
- *
- * @return ActionScheduler_Logger
- */
- public function get_destination_logger() {
- if ( empty( $this->destination_logger ) ) {
- throw new \RuntimeException( __( 'Destination logger must be configured before running a migration', 'woocommerce' ) );
- }
- return $this->destination_logger;
- }
- /**
- * Set the configured destination logger.
- *
- * @param ActionScheduler_Logger $logger
- */
- public function set_destination_logger( Logger $logger ) {
- $this->destination_logger = $logger;
- }
- /**
- * Get flag indicating whether it's a dry run.
- *
- * @return bool
- */
- public function get_dry_run() {
- return $this->dry_run;
- }
- /**
- * Set flag indicating whether it's a dry run.
- *
- * @param bool $dry_run
- */
- public function set_dry_run( $dry_run ) {
- $this->dry_run = (bool) $dry_run;
- }
- /**
- * Get progress bar object.
- *
- * @return ActionScheduler\WPCLI\ProgressBar
- */
- public function get_progress_bar() {
- return $this->progress_bar;
- }
- /**
- * Set progress bar object.
- *
- * @param ActionScheduler\WPCLI\ProgressBar $progress_bar
- */
- public function set_progress_bar( ProgressBar $progress_bar ) {
- $this->progress_bar = $progress_bar;
- }
- }
|