/**
  * @param ResourceTransformer $transformer
  * @param ResourceCollection $collection
  * @param ResourceDefinition $definition
  * @param Context $context
  * @param RelationshipValue $parent
  * @param null $parentEntity
  */
 public function processCollection(ResourceTransformer $transformer, ResourceCollection $collection, ResourceDefinition $definition, Context $context, RelationshipValue $parent = null, $parentEntity = null)
 {
     $builder = $this->getPaginationBuilderFromDefinition($transformer, $definition, null, null);
     if (count($collection) > 0 && (!isset($parent) || $parent->getField()->getRecords() > 0)) {
         // Register all identifiers if parent is present
         if ($parent) {
             foreach ($definition->getFields()->getIdentifiers() as $field) {
                 $builder->registerPropertyName($field->getName(), $field->getDisplayName());
             }
         }
         /** @var RESTResource $first */
         $first = $collection->first();
         if ($first) {
             $builder->setFirst($this->transformResource($builder, $first));
         }
         /** @var RESTResource $first */
         $last = $collection->last();
         if ($last) {
             $builder->setLast($this->transformResource($builder, $last));
         }
         $cursor = $builder->getNavigation();
         if ($parent) {
             $url = $parent->getField()->getUrl();
         } elseif ($context->getUrl()) {
             $url = $context->getUrl();
         } else {
             $url = $definition->getUrl();
         }
         $url = $transformer->getPropertyResolver()->resolvePathParameters($transformer, $parentEntity, $url, $context);
         $collection->addMeta('pagination', ['next' => $cursor->getNext() ? $url . '?' . http_build_query($cursor->getNext()) : null, 'previous' => $cursor->getPrevious() ? $url . '?' . http_build_query($cursor->getPrevious()) : null, 'cursors' => $cursor->toArray()]);
     }
 }