Example #1
0
 /**
  * @param Config $config // not used anywhere in real aps (yet? - analyze)
  * @param Logger $logger
  * @param Temp $temp
  * @param array $metadata
  * @return static
  */
 public static function create(Config $config, Monolog $logger, Temp $temp, array $metadata = [])
 {
     // TODO move this if to $this->validateStruct altogether
     if (!empty($metadata['json_parser.struct']) && is_array($metadata['json_parser.struct'])) {
         if (empty($metadata['json_parser.structVersion']) || $metadata['json_parser.structVersion'] != Struct::STRUCT_VERSION) {
             // temporary
             $metadata['json_parser.struct'] = self::updateStruct($metadata['json_parser.struct']);
         }
         $struct = $metadata['json_parser.struct'];
     } else {
         $struct = [];
     }
     $rowsToAnalyze = null != $config && !empty($config->getRuntimeParams()["analyze"]) ? $config->getRuntimeParams()["analyze"] : -1;
     $parser = JsonParser::create($logger, $struct, $rowsToAnalyze);
     $parser->setTemp($temp);
     return new static($parser);
 }