-
-
Notifications
You must be signed in to change notification settings - Fork 2k
/
MetaDataInterface.zep
167 lines (135 loc) · 4.63 KB
/
MetaDataInterface.zep
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
/**
* This file is part of the Phalcon Framework.
*
* (c) Phalcon Team <team@phalcon.io>
*
* For the full copyright and license information, please view the LICENSE.txt
* file that was distributed with this source code.
*/
namespace Phalcon\Mvc\Model;
use Phalcon\Mvc\ModelInterface;
use Phalcon\Mvc\Model\MetaData\Strategy\StrategyInterface;
/**
* Phalcon\Mvc\Model\MetaDataInterface
*
* Interface for Phalcon\Mvc\Model\MetaData
*/
interface MetaDataInterface
{
/**
* Returns table attributes names (fields)
*/
public function getAttributes(<ModelInterface> model) -> array;
/**
* Returns attributes that must be ignored from the INSERT SQL generation
*/
public function getAutomaticCreateAttributes(<ModelInterface> model) -> array;
/**
* Returns attributes that must be ignored from the UPDATE SQL generation
*/
public function getAutomaticUpdateAttributes(<ModelInterface> model) -> array;
/**
* Returns attributes and their bind data types
*/
public function getBindTypes(<ModelInterface> model) -> array;
/**
* Returns the column map if any
*/
public function getColumnMap(<ModelInterface> model) -> array;
/**
* Returns attributes (which have default values) and their default values
*/
public function getDefaultValues(<ModelInterface> model) -> array;
/**
* Returns attributes and their data types
*/
public function getDataTypes(<ModelInterface> model) -> array;
/**
* Returns attributes which types are numerical
*/
public function getDataTypesNumeric(<ModelInterface> model) -> array;
/**
* Returns attributes allow empty strings
*/
public function getEmptyStringAttributes(<ModelInterface> model) -> array;
/**
* Returns the name of identity field (if one is present)
*/
public function getIdentityField(<ModelInterface> model) -> string;
/**
* Returns an array of fields which are not part of the primary key
*/
public function getNonPrimaryKeyAttributes(<ModelInterface> model) -> array;
/**
* Returns an array of not null attributes
*/
public function getNotNullAttributes(<ModelInterface> model) -> array;
/**
* Returns an array of fields which are part of the primary key
*/
public function getPrimaryKeyAttributes(<ModelInterface> model) -> array;
/**
* Returns the reverse column map if any
*/
public function getReverseColumnMap(<ModelInterface> model) -> array;
/**
* Return the strategy to obtain the meta-data
*/
public function getStrategy() -> <StrategyInterface>;
/**
* Check if a model has certain attribute
*/
public function hasAttribute(<ModelInterface> model, string attribute) -> bool;
/**
* Checks if the internal meta-data container is empty
*/
public function isEmpty() -> bool;
/**
* Reads meta-data from the adapter
*/
public function read(string key) -> array | null;
/**
* Reads the ordered/reversed column map for certain model
*/
public function readColumnMap(<ModelInterface> model) -> array | null;
/**
* Reads column-map information for certain model using a MODEL_* constant
*/
public function readColumnMapIndex(<ModelInterface> model, int index);
/**
* Reads meta-data for certain model
*/
public function readMetaData(<ModelInterface> model) -> array;
/**
* Reads meta-data for certain model using a MODEL_* constant
*/
public function readMetaDataIndex(<ModelInterface> model, int index) -> var;
/**
* Resets internal meta-data in order to regenerate it
*/
public function reset();
/**
* Set the attributes that must be ignored from the INSERT SQL generation
*/
public function setAutomaticCreateAttributes(<ModelInterface> model, array attributes);
/**
* Set the attributes that must be ignored from the UPDATE SQL generation
*/
public function setAutomaticUpdateAttributes(<ModelInterface> model, array attributes);
/**
* Set the attributes that allow empty string values
*/
public function setEmptyStringAttributes(<ModelInterface> model, array attributes) -> void;
/**
* Writes meta-data for certain model using a MODEL_* constant
*/
public function writeMetaDataIndex(<ModelInterface> model, int index, var data);
/**
* Set the meta-data extraction strategy
*/
public function setStrategy(<StrategyInterface> strategy);
/**
* Writes meta-data to the adapter
*/
public function write(string! key, array data) -> void;
}