1: <?php
2:
3: declare(strict_types=1);
4:
5: namespace LaravelUi5\OData\Edm\Contracts\Annotation;
6:
7: /**
8: * Root contract for every value that can appear in an annotation.
9: *
10: * The value hierarchy has three concrete forms:
11: *
12: * - ConstantAnnotationValueInterface — a single primitive value
13: * (String, Bool, Int, Decimal, Float, Guid, Date, DateTimeOffset,
14: * Duration, TimeOfDay, Binary, or an EnumMember literal)
15: *
16: * - RecordAnnotationValueInterface — a structured value with
17: * named property values, optionally typed by a qualified term type
18: *
19: * - CollectionAnnotationValueInterface — an ordered list of values,
20: * each of which is itself an AnnotationValueInterface
21: *
22: * Callers that need to act on the concrete form should use instanceof
23: * checks. A future specialized layer may introduce a visitor instead.
24: *
25: * @see OData CSDL XML v4.01 §14.3 (Constant Expression)
26: * @see OData CSDL XML v4.01 §14.4 (Dynamic Expression)
27: */
28: interface AnnotationValueInterface
29: {
30: }
31: