4
4
5
5
use Swaggest \JsonSchema \Constraint \Properties ;
6
6
use Swaggest \JsonSchema \Structure \ClassStructure ;
7
- use Swaggest \JsonSchema \Structure \SchemaStructure ;
8
7
9
8
10
- class JsonSchema extends SchemaStructure {
9
+ class JsonSchema extends ClassStructure {
11
10
/** @var string */
12
11
public $ id ;
13
12
@@ -115,69 +114,69 @@ class JsonSchema extends SchemaStructure {
115
114
*/
116
115
public static function setUpProperties ($ properties , Schema $ ownerSchema )
117
116
{
118
- $ properties ->id = JsonSchema ::string ();
119
- $ properties ->schema = JsonSchema ::string ();
117
+ $ properties ->id = Schema ::string ();
118
+ $ properties ->schema = Schema ::string ();
120
119
$ ownerSchema ->addPropertyMapping ('$schema ' , self ::names ()->schema );
121
- $ properties ->title = JsonSchema ::string ();
122
- $ properties ->description = JsonSchema ::string ();
120
+ $ properties ->title = Schema ::string ();
121
+ $ properties ->description = Schema ::string ();
123
122
$ properties ->default = new Schema ();
124
- $ properties ->multipleOf = JsonSchema ::number ();
123
+ $ properties ->multipleOf = Schema ::number ();
125
124
$ properties ->multipleOf ->minimum = 0 ;
126
125
$ properties ->multipleOf ->exclusiveMinimum = true ;
127
- $ properties ->maximum = JsonSchema ::number ();
128
- $ properties ->exclusiveMaximum = JsonSchema ::boolean ();
129
- $ properties ->minimum = JsonSchema ::number ();
130
- $ properties ->exclusiveMinimum = JsonSchema ::boolean ();
131
- $ properties ->maxLength = JsonSchema ::integer ();
126
+ $ properties ->maximum = Schema ::number ();
127
+ $ properties ->exclusiveMaximum = Schema ::boolean ();
128
+ $ properties ->minimum = Schema ::number ();
129
+ $ properties ->exclusiveMinimum = Schema ::boolean ();
130
+ $ properties ->maxLength = Schema ::integer ();
132
131
$ properties ->maxLength ->minimum = 0 ;
133
132
$ properties ->minLength = new Schema ();
134
- $ properties ->minLength ->allOf [0 ] = JsonSchema ::integer ();
133
+ $ properties ->minLength ->allOf [0 ] = Schema ::integer ();
135
134
$ properties ->minLength ->allOf [0 ]->minimum = 0 ;
136
135
$ properties ->minLength ->allOf [1 ] = new Schema ();
137
- $ properties ->pattern = JsonSchema ::string ();
136
+ $ properties ->pattern = Schema ::string ();
138
137
$ properties ->additionalItems = new Schema ();
139
- $ properties ->additionalItems ->anyOf [0 ] = JsonSchema ::boolean ();
140
- $ properties ->additionalItems ->anyOf [1 ] = JsonSchema ::schema ();
138
+ $ properties ->additionalItems ->anyOf [0 ] = Schema ::boolean ();
139
+ $ properties ->additionalItems ->anyOf [1 ] = Schema ::schema ();
141
140
$ properties ->items = new Schema ();
142
- $ properties ->items ->anyOf [0 ] = JsonSchema ::schema ();
143
- $ properties ->items ->anyOf [1 ] = JsonSchema ::arr ();
144
- $ properties ->items ->anyOf [1 ]->items = JsonSchema ::schema ();
141
+ $ properties ->items ->anyOf [0 ] = Schema ::schema ();
142
+ $ properties ->items ->anyOf [1 ] = Schema ::arr ();
143
+ $ properties ->items ->anyOf [1 ]->items = Schema ::schema ();
145
144
$ properties ->items ->anyOf [1 ]->minItems = 1 ;
146
- $ properties ->maxItems = JsonSchema ::integer ();
145
+ $ properties ->maxItems = Schema ::integer ();
147
146
$ properties ->maxItems ->minimum = 0 ;
148
147
$ properties ->minItems = new Schema ();
149
- $ properties ->minItems ->allOf [0 ] = JsonSchema ::integer ();
148
+ $ properties ->minItems ->allOf [0 ] = Schema ::integer ();
150
149
$ properties ->minItems ->allOf [0 ]->minimum = 0 ;
151
150
$ properties ->minItems ->allOf [1 ] = new Schema ();
152
- $ properties ->uniqueItems = JsonSchema ::boolean ();
153
- $ properties ->maxProperties = JsonSchema ::integer ();
151
+ $ properties ->uniqueItems = Schema ::boolean ();
152
+ $ properties ->maxProperties = Schema ::integer ();
154
153
$ properties ->maxProperties ->minimum = 0 ;
155
154
$ properties ->minProperties = new Schema ();
156
- $ properties ->minProperties ->allOf [0 ] = JsonSchema ::integer ();
155
+ $ properties ->minProperties ->allOf [0 ] = Schema ::integer ();
157
156
$ properties ->minProperties ->allOf [0 ]->minimum = 0 ;
158
157
$ properties ->minProperties ->allOf [1 ] = new Schema ();
159
- $ properties ->required = JsonSchema ::arr ();
160
- $ properties ->required ->items = JsonSchema ::string ();
158
+ $ properties ->required = Schema ::arr ();
159
+ $ properties ->required ->items = Schema ::string ();
161
160
$ properties ->required ->uniqueItems = true ;
162
161
$ properties ->required ->minItems = 1 ;
163
162
$ properties ->additionalProperties = new Schema ();
164
- $ properties ->additionalProperties ->anyOf [0 ] = JsonSchema ::boolean ();
165
- $ properties ->additionalProperties ->anyOf [1 ] = JsonSchema ::schema ();
166
- $ properties ->definitions = JsonSchema ::object ();
167
- $ properties ->definitions ->additionalProperties = JsonSchema ::schema ();
168
- $ properties ->properties = JsonSchema ::object ();
169
- $ properties ->properties ->additionalProperties = JsonSchema ::schema ();
170
- $ properties ->patternProperties = JsonSchema ::object ();
171
- $ properties ->patternProperties ->additionalProperties = JsonSchema ::schema ();
172
- $ properties ->dependencies = JsonSchema ::object ();
173
- //$properties->dependencies->additionalProperties = JsonSchema ::schema();
163
+ $ properties ->additionalProperties ->anyOf [0 ] = Schema ::boolean ();
164
+ $ properties ->additionalProperties ->anyOf [1 ] = Schema ::schema ();
165
+ $ properties ->definitions = Schema ::object ();
166
+ $ properties ->definitions ->additionalProperties = Schema ::schema ();
167
+ $ properties ->properties = Schema ::object ();
168
+ $ properties ->properties ->additionalProperties = Schema ::schema ();
169
+ $ properties ->patternProperties = Schema ::object ();
170
+ $ properties ->patternProperties ->additionalProperties = Schema ::schema ();
171
+ $ properties ->dependencies = Schema ::object ();
172
+ //$properties->dependencies->additionalProperties = Schema ::schema();
174
173
$ properties ->dependencies ->additionalProperties = new Schema ();
175
- $ properties ->dependencies ->additionalProperties ->anyOf [0 ] = JsonSchema ::schema ();
176
- $ properties ->dependencies ->additionalProperties ->anyOf [1 ] = JsonSchema ::arr ();
177
- $ properties ->dependencies ->additionalProperties ->anyOf [1 ]->items = JsonSchema ::string ();
174
+ $ properties ->dependencies ->additionalProperties ->anyOf [0 ] = Schema ::schema ();
175
+ $ properties ->dependencies ->additionalProperties ->anyOf [1 ] = Schema ::arr ();
176
+ $ properties ->dependencies ->additionalProperties ->anyOf [1 ]->items = Schema ::string ();
178
177
$ properties ->dependencies ->additionalProperties ->anyOf [1 ]->uniqueItems = true ;
179
178
$ properties ->dependencies ->additionalProperties ->anyOf [1 ]->minItems = 1 ;
180
- $ properties ->enum = JsonSchema ::arr ();
179
+ $ properties ->enum = Schema ::arr ();
181
180
$ properties ->enum ->uniqueItems = true ;
182
181
$ properties ->enum ->minItems = 1 ;
183
182
$ properties ->type = new Schema ();
@@ -191,7 +190,7 @@ public static function setUpProperties($properties, Schema $ownerSchema)
191
190
5 => 'object ' ,
192
191
6 => 'string ' ,
193
192
);
194
- $ properties ->type ->anyOf [1 ] = JsonSchema ::arr ();
193
+ $ properties ->type ->anyOf [1 ] = Schema ::arr ();
195
194
$ properties ->type ->anyOf [1 ]->items = new Schema ();
196
195
$ properties ->type ->anyOf [1 ]->items ->enum = array (
197
196
0 => 'array ' ,
@@ -204,19 +203,19 @@ public static function setUpProperties($properties, Schema $ownerSchema)
204
203
);
205
204
$ properties ->type ->anyOf [1 ]->uniqueItems = true ;
206
205
$ properties ->type ->anyOf [1 ]->minItems = 1 ;
207
- $ properties ->format = JsonSchema ::string ();
208
- $ properties ->ref = JsonSchema ::string ();
206
+ $ properties ->format = Schema ::string ();
207
+ $ properties ->ref = Schema ::string ();
209
208
$ ownerSchema ->addPropertyMapping ('$ref ' , self ::names ()->ref );
210
- $ properties ->allOf = JsonSchema ::arr ();
211
- $ properties ->allOf ->items = JsonSchema ::schema ();
209
+ $ properties ->allOf = Schema ::arr ();
210
+ $ properties ->allOf ->items = Schema ::schema ();
212
211
$ properties ->allOf ->minItems = 1 ;
213
- $ properties ->anyOf = JsonSchema ::arr ();
214
- $ properties ->anyOf ->items = JsonSchema ::schema ();
212
+ $ properties ->anyOf = Schema ::arr ();
213
+ $ properties ->anyOf ->items = Schema ::schema ();
215
214
$ properties ->anyOf ->minItems = 1 ;
216
- $ properties ->oneOf = JsonSchema ::arr ();
217
- $ properties ->oneOf ->items = JsonSchema ::schema ();
215
+ $ properties ->oneOf = Schema ::arr ();
216
+ $ properties ->oneOf ->items = Schema ::schema ();
218
217
$ properties ->oneOf ->minItems = 1 ;
219
- $ properties ->not = JsonSchema ::schema ();
218
+ $ properties ->not = Schema ::schema ();
220
219
$ ownerSchema ->type = 'object ' ;
221
220
$ ownerSchema ->dependencies = array (
222
221
'exclusiveMaximum ' =>
0 commit comments