1: <?php
2:
3: declare(strict_types=1);
4:
5: namespace LaravelUi5\OData\Edm\Contracts;
6:
7: /**
8: * Marker interface for every model element that is a valid annotation
9: * target according to the OData CSDL specification.
10: *
11: * This interface has no methods. Its sole purpose is to form a closed
12: * set of PHP types that may legally appear in the APPLIES_TO constant
13: * of a TypedAnnotationInterface implementation. Static analysis tools
14: * and the vocabulary generator use this marker to validate annotation
15: * applicability at build time rather than at runtime.
16: *
17: * The following interfaces implement this marker:
18: * - EntityTypeInterface
19: * - ComplexTypeInterface
20: * - EntitySetInterface
21: * - SingletonInterface
22: * - PropertyInterface
23: * - NavigationPropertyInterface
24: * - FunctionInterface
25: * - FunctionParameterInterface
26: * - FunctionImportInterface
27: * - EnumTypeInterface
28: * - EnumMemberInterface
29: * - TypeDefinitionInterface
30: * - EntityContainerInterface
31: * - SchemaInterface
32: *
33: * @see OData CSDL XML v4.01 ยง14.1.2 (Applicability)
34: */
35: interface AnnotationTargetInterface
36: {
37: }