/** * Fábrica de Reflection * * a fabrica de reflaxao trabalha em conjunto com a anotacao do valueObject e o objeto de * conexao, sendo o primeiro necessario para obter a entidade de armazena definida na primeira * parte da annotacao. ja o segundo param (connect) eh utilizado para obter as propriedades * da entidade propriamente dito. * * O primeiro paramentro ($source) pode varia em dois tipos namespace do ValueObject ou um * objeto deste para que se possa recuperar sua anotacao. * * @param [string | Valueobject] $source * @param Connect $connect * @return Reflection * @throws IllegalArgumentException * */ public static function factory($source, Connect $connect) { $tmpNSReflection = __NAMESPACE__ . self::NAMESPACE_SEPARATOR . 'adapter' . self::NAMESPACE_SEPARATOR . $connect->getAdapter() . self::NAMESPACE_SEPARATOR . $connect->getDriver() . self::NAMESPACE_SEPARATOR . 'Reflection'; try { return $tmpNSReflection::factory($source, $connect); } catch (IllegalArgumentException $illExc) { // @codeCoverageIgnoreStart throw $illExc; // @codeCoverageIgnoreEnd } }
/** * Fábrica de Reflection. * * @param string $source * @param Connect $connect * @return Reflection * @throws IllegalArgumentException * */ public static function factory($source, Connect $connect) { $annon = NULL; if (is_string($source)) { $annon = ValueObjectAbstract::factory($source, array())->annotation(); } elseif ($source instanceof ValueObjectAbstract) { $annon = $source->annotation(); } else { throw new IllegalArgumentException(self::REFLECTION_INVALID_SOURCE); } $reflect = new self($annon, $connect); $reflect->_source = $connect->getSource(); $reflect->_loadProperties($reflect->_source); return $reflect; }
/** * Construtor. * * @param Config $config * @throws PersistException * */ public function __construct(Config $config) { parent::__construct($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); }
/** * Construtor. * * @param PersistConfig $config * @throws PersistException * */ public function __construct(Config $config) { parent::__construct($config); $this->_directory = $config->get('directory'); $this->_sourceDn = $config->get('source'); }