-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathJMSSerializerHandler.php
More file actions
108 lines (102 loc) · 3.15 KB
/
JMSSerializerHandler.php
File metadata and controls
108 lines (102 loc) · 3.15 KB
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
<?php namespace Draw\Swagger;
use Draw\Swagger\Schema\Mixed;
use Draw\Swagger\Schema\SecurityRequirement;
use JMS\Serializer\Context;
use JMS\Serializer\GraphNavigatorInterface;
use JMS\Serializer\Handler\SubscribingHandlerInterface;
use JMS\Serializer\JsonDeserializationVisitor;
use JMS\Serializer\JsonSerializationVisitor;
class JMSSerializerHandler implements SubscribingHandlerInterface
{
public static function getSubscribingMethods()
{
return [
[
'direction' => GraphNavigatorInterface::DIRECTION_SERIALIZATION,
'format' => 'json',
'type' => SecurityRequirement::class,
'method' => 'serializeSecurityRequirementToJson',
],
[
'direction' => GraphNavigatorInterface::DIRECTION_DESERIALIZATION,
'format' => 'json',
'type' => SecurityRequirement::class,
'method' => 'deserializeSecurityRequirementToJson',
],
[
'direction' => GraphNavigatorInterface::DIRECTION_SERIALIZATION,
'format' => 'json',
'type' => Mixed::class,
'method' => 'serializeMixedToJson',
],
[
'direction' => GraphNavigatorInterface::DIRECTION_DESERIALIZATION,
'format' => 'json',
'type' => Mixed::class,
'method' => 'deserializeMixedToJson',
],
];
}
/**
* @param JsonSerializationVisitor $visitor
* @param SecurityRequirement $securityRequirement
* @param array $type
* @param Context $context
* @return mixed
*/
public function serializeSecurityRequirementToJson(
JsonSerializationVisitor $visitor,
SecurityRequirement $securityRequirement,
array $type,
Context $context
) {
return $securityRequirement->getData();
}
/**
* @param JsonDeserializationVisitor $visitor
* @param SecurityRequirement $data
* @param array $type
* @param Context $context
* @return SecurityRequirement
*/
public function deserializeSecurityRequirementToJson(
JsonDeserializationVisitor $visitor,
$data,
array $type,
Context $context
) {
$securityRequirement = new SecurityRequirement();
$securityRequirement->setData($data);
return $securityRequirement;
}
/**
* @param JsonSerializationVisitor $visitor
* @param Mixed $mixed
* @param array $type
* @param Context $context
* @return mixed
*/
public function serializeMixedToJson(
JsonSerializationVisitor $visitor,
Mixed $mixed,
array $type,
Context $context
) {
return $mixed->data;
}
/**
* @param JsonDeserializationVisitor $visitor
* @param SecurityRequirement $data
* @param array $type
* @param Context $context
* @return Mixed
*/
public function deserializeMixedToJson(
JsonDeserializationVisitor $visitor,
$data,
array $type,
Context $context
) {
return new Mixed($data);
}
}