-
Notifications
You must be signed in to change notification settings - Fork 0
/
ObjectMetadataInterface.php
182 lines (153 loc) · 4.27 KB
/
ObjectMetadataInterface.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<?php
/*
* This file is part of the Klipper package.
*
* (c) François Pluchino <francois.pluchino@klipper.dev>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Klipper\Component\Metadata;
use Symfony\Component\Config\Resource\ResourceInterface;
/**
* @author François Pluchino <francois.pluchino@klipper.dev>
*/
interface ObjectMetadataInterface extends MetadataInterface
{
/**
* Get the plural unique name.
*/
public function getPluralName(): string;
/**
* Get the plural label.
*/
public function getPluralLabel(): ?string;
/**
* Get the class name.
*/
public function getClass(): string;
/**
* Get the field metadatas.
*
* @return FieldMetadataInterface[]
*/
public function getFields(): array;
/**
* Check if the field metadata is present.
*
* @param string $name The field name
*/
public function hasField(string $name): bool;
/**
* Check if the field metadata is present with the unique field name.
*
* @param string $name The unique field name
*/
public function hasFieldByName(string $name): bool;
/**
* Get the field metadata.
*
* @param string $name The field name
*/
public function getField(string $name): FieldMetadataInterface;
/**
* Get the field metadata with the unique field name.
*
* @param string $name The unique field name
*/
public function getFieldByName(string $name): FieldMetadataInterface;
/**
* Get the association metadatas.
*
* @return AssociationMetadataInterface[]
*/
public function getAssociations(): array;
/**
* Check if the association metadata is present.
*
* @param string $name The association name
*/
public function hasAssociation(string $name): bool;
/**
* Check if the association metadata is present with the unique association name.
*
* @param string $name The unique association name
*/
public function hasAssociationByName(string $name): bool;
/**
* Get the association metadata.
*
* @param string $name The association name
*/
public function getAssociation(string $name): AssociationMetadataInterface;
/**
* Get the association metadata with the unique association name.
*
* @param string $name The unique association name
*/
public function getAssociationByName(string $name): AssociationMetadataInterface;
/**
* Check if the object is sortable.
*/
public function isSortable(): bool;
/**
* Check if the object is sortable with multiple fields.
*/
public function isMultiSortable(): bool;
/**
* Get the map of default sortable with field and direction.
*/
public function getDefaultSortable(): array;
/**
* Check if the object is filterable.
*/
public function isFilterable(): bool;
/**
* Check if the object is searchable.
*/
public function isSearchable(): bool;
/**
* Get the available contexts.
*
* @return string[]
*/
public function getAvailableContexts(): array;
/**
* Get the field name used for the identifier.
*/
public function getFieldIdentifier(): string;
/**
* Get the field name used for the label.
*/
public function getFieldLabel(): string;
/**
* Get the paths to allow the search on fields defined in deep associations.
*
* @return string[]
*/
public function getDeepSearchPaths(): array;
/**
* Get the available actions.
*
* @return ActionMetadataInterface[]
*/
public function getActions(): array;
/**
* Check if the action metadata is present.
*
* @param string $action The action name
*/
public function hasAction(string $action): bool;
/**
* Get the action.
*
* @param string $action The action name
*/
public function getAction(string $action): ActionMetadataInterface;
/**
* Returns an array of resources loaded to build this metadata.
*
* @return ResourceInterface[] An array of resources
*/
public function getResources(): array;
}