73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace nur\mapper\base;
 | 
						|
 | 
						|
use nur\cli\DynamicCommand;
 | 
						|
use nur\mapper\csv\Assoc2CsvMapper_command;
 | 
						|
use nur\mapper\csv\Csv2AssocMapper_command;
 | 
						|
use nur\mapper\fsv\Assoc2FsvMapper_command;
 | 
						|
use nur\mapper\fsv\Fsv2AssocMapper_command;
 | 
						|
use nur\mapper\item\Assoc2SeqMapper_command;
 | 
						|
use nur\mapper\item\AttributeFilterMapper_command;
 | 
						|
use nur\mapper\item\GenericMapper_command;
 | 
						|
use nur\mapper\item\ItemFilterMapper_command;
 | 
						|
use nur\mapper\item\NumberMapper_command;
 | 
						|
use nur\mapper\item\SchemaMapper_command;
 | 
						|
use nur\mapper\item\Seq2AssocMapper_command;
 | 
						|
use nur\mapper\item\StreamMapper_command;
 | 
						|
use nur\mapper\item\StringMapper_command;
 | 
						|
use nur\mapper\item\TextMapper_command;
 | 
						|
use nur\mapper\line\IconvMapper_command;
 | 
						|
 | 
						|
/**
 | 
						|
 * Class mappers_command: classe de support pour construire un ensemble de
 | 
						|
 * mappers pour une application recevant des commandes utilisateurs
 | 
						|
 */
 | 
						|
class mappers_command extends DynamicCommand {
 | 
						|
  const PRODUCER_CLASSES = [
 | 
						|
  ];
 | 
						|
  const CONSUMER_CLASSES = [
 | 
						|
  ];
 | 
						|
  const MAPPER_CLASSES = [
 | 
						|
    # base
 | 
						|
    FuncMapper_command::class,
 | 
						|
    # item
 | 
						|
    StreamMapper_command::class,
 | 
						|
    StringMapper_command::class,
 | 
						|
    TextMapper_command::class,
 | 
						|
    NumberMapper_command::class,
 | 
						|
    GenericMapper_command::class,
 | 
						|
    Seq2AssocMapper_command::class,
 | 
						|
    SchemaMapper_command::class,
 | 
						|
    ItemFilterMapper_command::class,
 | 
						|
    AttributeFilterMapper_command::class,
 | 
						|
    Assoc2SeqMapper_command::class,
 | 
						|
    # line
 | 
						|
    IconvMapper_command::class,
 | 
						|
    # csv
 | 
						|
    Csv2AssocMapper_command::class,
 | 
						|
    Assoc2CsvMapper_command::class,
 | 
						|
    # fsv
 | 
						|
    Fsv2AssocMapper_command::class,
 | 
						|
    Assoc2FsvMapper_command::class,
 | 
						|
  ];
 | 
						|
 | 
						|
  protected function DYNAMIC_COMMAND_CLASSES(): array {
 | 
						|
    return array_merge(self::PRODUCER_CLASSES, self::CONSUMER_CLASSES, self::MAPPER_CLASSES);
 | 
						|
  }
 | 
						|
 | 
						|
  function COMMANDS(): array {
 | 
						|
    $commands = [];
 | 
						|
    foreach ($this->DYNAMIC_COMMAND_CLASSES() as $cc) {
 | 
						|
      $commands[] = $cc::get_def();
 | 
						|
    }
 | 
						|
    return $commands;
 | 
						|
  }
 | 
						|
 | 
						|
  static $mappers = [];
 | 
						|
 | 
						|
  static function add(Mapper $mapper): Mapper {
 | 
						|
    self::$mappers[] = $mapper;
 | 
						|
    return $mapper;
 | 
						|
  }
 | 
						|
}
 |