Exemple #1
0
 /**
  * o primeiro param pode ser uma Query ou um objeto Entity. Se uma Entity for informado, então Config
  * torna-se-á obrigatório devido a necessidade de estabelecer a conexao com o respositorio de dados.
  * a fonte de dados poderá ser informado por meio de terceiro para ou omitido para ser utilizado
  * a fonte de dados padrao.
  *
  * @param DSLinkerReferenceable $target
  * @param Config $config
  * @param string $dsName
  * */
 public function __construct(DSLinkerReferenceable $target, Config $config = NULL, $dsName = 'default')
 {
     # se o target for uma referencia para Entity ou Query entao sera
     # necessario um objeto executor de consulta Persist
     if ($target instanceof Entity || $target instanceof QueryAbstract) {
         $info = $config->get($config->get($dsName));
         $target = QueryAbstract::factory($info->get('driver'), $target);
         PersistConfig::registerConfigs($config->toArray());
         $pConfig = $configPersist = PersistConfig::factory($config->get($dsName));
         $namespace = sprintf('br\\gov\\sial\\core\\persist\\%s\\Persist', $pConfig->get('adapter'));
         $executor = Persist::factory($namespace, $pConfig);
         $target = $executor->execute($target);
     }
     $this->_result = $target;
     /* necessario para tornar o */
     $this->next();
 }
 /**
  * Construtor.
  *
  * @param string[] $config
  * @throws IllegalArgumentException
  * */
 public function __construct(array $config = array())
 {
     parent::__construct($config, NULL);
     $this->_valid($config);
 }
 /**
  * recupera meta informacao do valueObject informado
  *
  * @param stdClass $annon
  * @param string $dataSource
  * */
 public function meta(\stdClass $annon, $dataSource)
 {
     $config = PersistConfig::factory($dataSource, self::$persistConfig->toArray());
     $data = MetaAbstract::factory(Connect::factory($config))->data($this->safeToggle($annon, 'schema', NULL), $this->safeToggle($annon, 'entity', NULL));
     $this->merge($annon, $data);
 }