コード例 #1
0
ファイル: BaseService.php プロジェクト: grimmlink/podata
 /**
  * This method will query and validates for IMetadataProvider and IQueryProvider implementations, invokes
  * BaseService::Initialize to initialize service specific policies.
  *
  * 
  * @throws ODataException
  */
 protected function createProviders()
 {
     $metadataProvider = $this->getMetadataProvider();
     if (is_null($metadataProvider)) {
         throw ODataException::createInternalServerError(Messages::providersWrapperNull());
     }
     if (!is_object($metadataProvider) || !$metadataProvider instanceof IMetadataProvider) {
         throw ODataException::createInternalServerError(Messages::invalidMetadataInstance());
     }
     $queryProvider = $this->getQueryProvider();
     if (is_null($queryProvider)) {
         throw ODataException::createInternalServerError(Messages::providersWrapperNull());
     }
     if (!is_object($queryProvider)) {
         throw ODataException::createInternalServerError(Messages::invalidQueryInstance());
     }
     if (!$queryProvider instanceof IQueryProvider) {
         throw ODataException::createInternalServerError(Messages::invalidQueryInstance());
     }
     $this->config = new ServiceConfiguration($metadataProvider);
     $this->providersWrapper = new ProvidersWrapper($metadataProvider, $queryProvider, $this->config);
     $this->initialize($this->config);
     //TODO: this seems like a bad spot to do this
     $this->writerRegistry = new ODataWriterRegistry();
     $this->registerWriters();
 }