1: <?php declare(strict_types=1);
2:
3: namespace Salient\Contract\Core;
4:
5: /**
6: * Receives the provider servicing the object
7: *
8: * @template TProvider of ProviderInterface
9: *
10: * @extends HasProvider<TProvider>
11: */
12: interface ProviderAwareInterface extends HasProvider
13: {
14: /**
15: * Set the object's provider
16: *
17: * Throws an exception if the object already has a provider.
18: *
19: * @param TProvider $provider
20: * @return $this
21: */
22: public function setProvider(ProviderInterface $provider);
23: }
24: