1: <?php
2:
3: declare(strict_types=1);
4:
5: namespace LaravelUi5\OData\Edm\Contracts\Container;
6:
7: use LaravelUi5\OData\Edm\Contracts\AnnotatableInterface;
8:
9: /**
10: * A navigation property binding declared on an entity set or singleton.
11: *
12: * Bindings resolve the target of a navigation property to a concrete
13: * entity set or singleton within the same entity container. The path
14: * may include type-cast segments for polymorphic navigation, e.g.
15: * "Items/MyService.SpecialItem".
16: *
17: * Bindings are annotatable per the CSDL specification.
18: *
19: * @see OData CSDL XML v4.01 §13.4 (Navigation Property Binding)
20: */
21: interface NavigationPropertyBindingInterface extends AnnotatableInterface
22: {
23: /**
24: * The navigation property path this binding applies to.
25: *
26: * For simple cases this is just the navigation property name,
27: * e.g. "Orders". For polymorphic scenarios it may contain
28: * type-cast segments, e.g. "Items/MyService.SpecialItem".
29: *
30: * @see OData CSDL XML v4.01 §13.4.1
31: */
32: public function getPath(): string;
33:
34: /**
35: * The qualified path to the binding target within the container,
36: * e.g. "MyService.Container/Orders" or simply "Orders" when the
37: * target is in the same container.
38: *
39: * @see OData CSDL XML v4.01 §13.4.2
40: */
41: public function getTarget(): string;
42: }
43: