@@ -81,13 +81,6 @@ public function transformList(array $constraintList) : TypeDoc
81
81
*/
82
82
private function appendToDoc (TypeDoc $ doc , Constraint $ constraint ) : void
83
83
{
84
- static $ notNullConstraintList = [
85
- Assert \NotNull::class,
86
- Assert \IsTrue::class, // If it is true, it cannot be null ...
87
- Assert \IsFalse::class, // If it is false, it cannot be null ...
88
- // If should be identical to something, it cannot be null (but can be identical to null)
89
- Assert \IdenticalTo::class,
90
- ];
91
84
if ($ constraint instanceof Assert \Callback) {
92
85
$ callbackResult = call_user_func ($ constraint ->callback );
93
86
$ callbackResultList = is_array ($ callbackResult ) ? $ callbackResult : [$ callbackResult ];
@@ -97,38 +90,7 @@ private function appendToDoc(TypeDoc $doc, Constraint $constraint) : void
97
90
} elseif ($ doc instanceof ArrayDoc && $ constraint instanceof Assert \All) {
98
91
$ this ->appendAllConstraintToDoc ($ doc , $ constraint );
99
92
} else {
100
- $ this ->stringDocHelper ->append ($ doc , $ constraint );
101
- $ this ->appendCollectionDoc ($ doc , $ constraint );
102
-
103
- $ this ->minMaxHelper ->append ($ doc , $ constraint );
104
- $ this ->appendValidItemListDoc ($ doc , $ constraint );
105
-
106
- if ($ constraint instanceof Assert \Existence) {
107
- $ doc ->setRequired ($ constraint instanceof Assert \Required);
108
- foreach ($ constraint ->constraints as $ subConstraint ) {
109
- $ this ->appendToDoc ($ doc , $ subConstraint );
110
- }
111
- } elseif ($ this ->isInstanceOfOneClassIn ($ constraint , $ notNullConstraintList )) {
112
- $ doc ->setNullable (
113
- ($ constraint instanceof Assert \IdenticalTo)
114
- ? is_null ($ constraint ->value )
115
- : false
116
- );
117
- $ defaultValue = $ exampleValue = null ;
118
- switch (true ) {
119
- case $ constraint instanceof Assert \IsTrue:
120
- $ defaultValue = $ exampleValue = true ;
121
- break ;
122
- case $ constraint instanceof Assert \IsFalse:
123
- $ defaultValue = $ exampleValue = false ;
124
- break ;
125
- case $ constraint instanceof Assert \IdenticalTo:
126
- $ defaultValue = $ exampleValue = $ constraint ->value ;
127
- break ;
128
- }
129
- $ doc ->setDefault ($ doc ->getDefault () ?? $ defaultValue );
130
- $ doc ->setExample ($ doc ->getExample () ?? $ exampleValue );
131
- }
93
+ $ this ->basicAppendToDoc ($ doc , $ constraint );
132
94
}
133
95
// /!\ Payload doc will override values even if already defined
134
96
$ this ->constraintPayloadDocHelper ->appendPayloadDoc ($ doc , $ constraint );
@@ -236,4 +198,54 @@ private function addToAllowedValueListIfNotExist(TypeDoc $doc, $value) : void
236
198
$ doc ->addAllowedValue ($ value );
237
199
}
238
200
}
201
+
202
+ /**
203
+ * @param TypeDoc $doc
204
+ * @param Constraint $constraint
205
+ *
206
+ * @throws \ReflectionException
207
+ */
208
+ private function basicAppendToDoc (TypeDoc $ doc , Constraint $ constraint ): void
209
+ {
210
+ static $ notNullConstraintList = [
211
+ Assert \NotNull::class,
212
+ Assert \IsTrue::class, // If it is true, it cannot be null ...
213
+ Assert \IsFalse::class, // If it is false, it cannot be null ...
214
+ // If should be identical to something, it cannot be null (but can be identical to null)
215
+ Assert \IdenticalTo::class,
216
+ ];
217
+
218
+ $ this ->stringDocHelper ->append ($ doc , $ constraint );
219
+ $ this ->appendCollectionDoc ($ doc , $ constraint );
220
+
221
+ $ this ->minMaxHelper ->append ($ doc , $ constraint );
222
+ $ this ->appendValidItemListDoc ($ doc , $ constraint );
223
+
224
+ if ($ constraint instanceof Assert \Existence) {
225
+ $ doc ->setRequired ($ constraint instanceof Assert \Required);
226
+ foreach ($ constraint ->constraints as $ subConstraint ) {
227
+ $ this ->appendToDoc ($ doc , $ subConstraint );
228
+ }
229
+ } elseif ($ this ->isInstanceOfOneClassIn ($ constraint , $ notNullConstraintList )) {
230
+ $ doc ->setNullable (
231
+ ($ constraint instanceof Assert \IdenticalTo)
232
+ ? is_null ($ constraint ->value )
233
+ : false
234
+ );
235
+ $ defaultValue = $ exampleValue = null ;
236
+ switch (true ) {
237
+ case $ constraint instanceof Assert \IsTrue:
238
+ $ defaultValue = $ exampleValue = true ;
239
+ break ;
240
+ case $ constraint instanceof Assert \IsFalse:
241
+ $ defaultValue = $ exampleValue = false ;
242
+ break ;
243
+ case $ constraint instanceof Assert \IdenticalTo:
244
+ $ defaultValue = $ exampleValue = $ constraint ->value ;
245
+ break ;
246
+ }
247
+ $ doc ->setDefault ($ doc ->getDefault () ?? $ defaultValue );
248
+ $ doc ->setExample ($ doc ->getExample () ?? $ exampleValue );
249
+ }
250
+ }
239
251
}
0 commit comments