1: <?php
2:
3: namespace Charcoal\Config;
4:
5: /**
6: * Describes an object that can perform lookups in other objects.
7: *
8: * This interface can be fully implemented with its accompanying {@see DelegatesAwareTrait}.
9: */
10: interface DelegatesAwareInterface
11: {
12: /**
13: * Appends a collection of delegare objects.
14: *
15: * @param EntityInterface[] $delegates One or more delegate objects to register.
16: * @return DelegatesAwareInterface Chainable
17: */
18: public function setDelegates(array $delegates);
19:
20: /**
21: * Appends a delegare object onto the delegate stack.
22: *
23: * @param EntityInterface $delegate A delegate object to register.
24: * @return DelegatesAwareInterface Chainable
25: */
26: public function addDelegate(EntityInterface $delegate);
27:
28: /**
29: * Prepends a delegare object onto the delegate stack.
30: *
31: * @param EntityInterface $delegate A delegate object to register.
32: * @return DelegatesAwareInterface Chainable
33: */
34: public function prependDelegate(EntityInterface $delegate);
35: }
36: