/**
  * {@inheritdoc}
  */
 public function process($context, Result $result, Collection $collection)
 {
     $routes = $this->locateRoutesForClass($context->getContext()->getClass());
     if (empty($routes)) {
         return;
     }
     $resource = $context->getAnnotation()->toModel();
     foreach ($routes as $route) {
         $function = $this->extractFunctionFromRoute($route);
         foreach ($route->getMethods() as $method) {
             $operation = new Operation(sprintf('%s/%s/%s', $resource->getId(), $method, $function));
             $operation->setMethod($method);
             $operation->setPath($route->getPath());
             foreach ($this->extractParametersFromRoute($route) as $parameter) {
                 $operation->addParameter($parameter);
             }
             if ($this->versionOperation) {
                 $operation = $this->versionOperation->version($operation, $result, $route);
             }
             if (!is_array($operation)) {
                 $operation = array($operation);
             }
             foreach ($operation as $value) {
                 $resource->addOperation($value);
             }
         }
     }
     $result->set('resource', $resource->getId(), $resource);
 }