public function provideServiceDefinitionFor(ServiceDefinitionProvider\Frame $frame) : ServiceDefinition
    {
        // get the provider that handles the definition
        $provider = $this->capabilities->getServiceDefinitionProvider($frame);

        if ($provider !== null) {
            // provide the service
            return $provider->provide($this, $frame);
        }

        $annotationClassName = get_class($frame->getServiceAnnotation());

        // TODO: the exception is misleading for factory defined services. Add the exception to the Frame.
        throw new BuilderException(
            "Dont know how to provide the service definition for {$annotationClassName} found on class {$frame->getClass()->getName()}"
        );
    }
public function provideServiceDefinitionFor(ServiceDefinitionProvider\Frame $frame) : ServiceDefinition
    {
        // get the provider that handles the definition
        $provider = $this->capabilities->getServiceDefinitionProvider($frame);

        if ($provider !== null) {
            // provide the service
            return $provider->provide($this, $frame);
        }

        $annotationClassName = get_class($frame->getServiceAnnotation());

        // TODO: the exception is misleading for factory defined services. Add the exception to the Frame.
        throw new BuilderException(
            "Dont know how to provide the service definition for {$annotationClassName} found on class {$frame->getClass()->getName()}"
        );
    }
@param ServiceDefinitionProvider\Frame $frame

@return ServiceDefinition
@throws BuilderException