odata/library/ODataProducer/UriProcessor/QueryProcessor/OrderByParser/InternalOrderByInfo.php
/**
     * Build value of $skiptoken from the given object which will be the 
     * last object in the page.
     * 
     * @param mixed $lastObject entity instance from which skiptoken needs 
     *                          to be built.
     * 
     * @return string
     * 
     * @throws ODataException If reflection exception occurs while accessing 
     *                        property.
     */
Build value of $skiptoken from the given object which will be the
last object in the page.

@param mixed $lastObject entity instance from which skiptoken needs
to be built.

@return string

@throws ODataException If reflection exception occurs while accessing
property.
Build value of $skiptoken from the given object which will be the last object in the page . @param mixed $lastObject entity instance from which skiptoken needs to be built . @return string @throws ODataException If reflection exception occurs while accessing property .
public function buildSkipTokenValue($lastObject)
    {
        $nextPageLink = null;
        foreach ($this->getOrderByPathSegments() as $orderByPathSegment) {
            $index = 0;
            $currentObject = $lastObject;
            $subPathSegments = $orderByPathSegment->getSubPathSegments();
            $subPathCount = count($subPathSegments);
            foreach ($subPathSegments as &$subPathSegment) {
                $isLastSegment = ($index == $subPathCount - 1);
                try {
                    $dummyProperty = new \ReflectionProperty(
                        $currentObject, $subPathSegment->getName()
                    );
                    $currentObject = $dummyProperty->getValue($currentObject);
                    if (is_null($currentObject)) {                        
                            $nextPageLink .= 'null, ';
                            break;
                    } else if ($isLastSegment) {
                        $type = $subPathSegment->getInstanceType();
                        $value = $type->convertToOData($currentObject);
                        $nextPageLink .= $value . ', ';
                    }
                } catch (\ReflectionException $reflectionException) {
                    throw ODataException::createInternalServerError(
                        Messages::internalSkipTokenInfoFailedToAccessOrInitializeProperty(
                            $subPathSegment->getName()
                        )
                    );
                }
                $index++;
            }
        }
        return rtrim($nextPageLink, ", ");
    }
public function buildSkipTokenValue ( $ lastObject ) { $ nextPageLink = null ; foreach ( $ this -> getOrderByPathSegments ( ) as $ orderByPathSegment ) { $ index = 0 ; $ currentObject = $ lastObject ; $ subPathSegments = $ orderByPathSegment -> getSubPathSegments ( ) ; $ subPathCount = count ( $ subPathSegments ) ; foreach ( $ subPathSegments as & $ subPathSegment ) { $ isLastSegment = ( $ index == $ subPathCount - 1 ) ; try { $ dummyProperty = new \ ReflectionProperty ( $ currentObject , $ subPathSegment -> getName ( ) ) ; $ currentObject = $ dummyProperty -> getValue ( $ currentObject ) ; if ( is_null ( $ currentObject ) ) { $ nextPageLink .= 'null, ' ; break ; } else if ( $ isLastSegment ) { $ type = $ subPathSegment -> getInstanceType ( ) ; $ value = $ type -> convertToOData ( $ currentObject ) ; $ nextPageLink .= $ value . ', ' ; } } catch ( \ ReflectionException $ reflectionException ) { throw ODataException :: createInternalServerError ( Messages :: internalSkipTokenInfoFailedToAccessOrInitializeProperty ( $ subPathSegment -> getName ( ) ) ) ; } $ index ++ ; } } return rtrim ( $ nextPageLink , " ,  " ) ; }
Build value of $skiptoken from the given object which will be the
 last object in the page.
Build value of $skiptoken from the given object which will be the last object in the page .
// assert($type implements IType) // If this is a string then do utf8_encode to convert  // utf8 decoded characters to // corrospoding utf8 char (e.g. � to í), then do a  // urlencode to convert í to %C3%AD // urlencode is needed for datetime and guid too // if ($type instanceof String || $type instanceof DateTime  //     || $type instanceof Guid) { //    if ($type instanceof String) { //        $currentObject = utf8_encode($currentObject); //    }  //    $currentObject = urlencode($currentObject); //} // call IType::convertToOData to attach reuqired suffix  // and prepfix. // e.g. $valueM, $valueF, datetime'$value', guid'$value',  // '$value' etc.. // Also we can think about moving above urlencode to this  // function