Ejemplo n.º 1
0
 /**
  * Parse the given expand and select clause, validate them 
  * and build 'Projection Tree'
  * 
  * @param ResourceSetWrapper $resourceSetWrapper The resource set identified by the resource path uri.
  * @param ResourceType $resourceType The resource type of entities identified by the resource path uri.
  * @param InternalOrderByInfo $internalOrderInfo The top level sort information, this will be set if the $skip, $top is
  *                                                         specified in the 
  *                                                         request uri or Server 
  *                                                         side paging is
  *                                                         enabled for top level 
  *                                                         resource
  * @param int $skipCount The value of $skip option applied to the top level resource
  *                                                         set identified by the 
  *                                                         resource path uri 
  *                                                         null means $skip 
  *                                                         option is not present.
  * @param int $takeCount The minimum among the value of $top option applied to and
  *                                                         page size configured
  *                                                         for the top level
  *                                                         resource 
  *                                                         set identified
  *                                                         by the resource 
  *                                                         path uri.
  *                                                         null means $top option
  *                                                         is not present and/or
  *                                                         page size is not 
  *                                                         configured for top
  *                                                         level resource set.
  * @param string $expand The value of $expand clause
  * @param string $select The value of $select clause
  * @param ProvidersWrapper $providerWrapper Reference to metadata and query provider wrapper
  * 
  * @return RootProjectionNode Returns root of the 'Projection Tree'
  * 
  * @throws ODataException If any error occur while parsing expand and/or select clause
  *
  */
 public static function parseExpandAndSelectClause(ResourceSetWrapper $resourceSetWrapper, ResourceType $resourceType, $internalOrderInfo, $skipCount, $takeCount, $expand, $select, ProvidersWrapper $providerWrapper)
 {
     $parser = new ExpandProjectionParser($providerWrapper);
     $parser->_rootProjectionNode = new RootProjectionNode($resourceSetWrapper, $internalOrderInfo, $skipCount, $takeCount, null, $resourceType);
     $parser->_parseExpand($expand);
     $parser->_parseSelect($select);
     return $parser->_rootProjectionNode;
 }