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