name: GetSetMethodNormalizer class_comment: null dependencies: - name: LegacyIgnore type: class source: Symfony\Component\Serializer\Annotation\Ignore - name: Ignore type: class source: Symfony\Component\Serializer\Attribute\Ignore properties: - name: reflectionCache visibility: private comment: null methods: - name: supports visibility: private parameters: - name: class - name: readAttributes comment: "# * Converts between objects with getter and setter methods and arrays.\n\ # *\n# * The normalization process looks at all public methods and calls the ones\n\ # * which have a name starting with get and take no parameters. The result is\ \ a\n# * map from property names (method name stripped of the get prefix and converted\n\ # * to lower case) to property values. Property values are normalized through\ \ the\n# * serializer.\n# *\n# * The denormalization first looks at the constructor\ \ of the given class to see\n# * if any of the parameters have the same name as\ \ one of the properties. The\n# * constructor is then called with all parameters\ \ or an exception is thrown if\n# * any required parameters were not present as\ \ properties. Then the denormalizer\n# * walks through the given map of property\ \ names to property values to see if a\n# * setter method exists for any of the\ \ properties. If a setter exists it is\n# * called with the property value. No\ \ automatic denormalization of the value\n# * takes place.\n# *\n# * @author Nils\ \ Adermann \n# * @author K\xE9vin Dunglas \n\ # */\n# final class GetSetMethodNormalizer extends AbstractObjectNormalizer\n\ # {\n# private static $reflectionCache = [];\n# private static array $setterAccessibleCache\ \ = [];\n# \n# public function getSupportedTypes(?string $format): array\n# {\n\ # return ['object' => true];\n# }\n# \n# public function supportsNormalization(mixed\ \ $data, ?string $format = null, array $context = []): bool\n# {\n# return parent::supportsNormalization($data,\ \ $format) && $this->supports($data::class, true);\n# }\n# \n# public function\ \ supportsDenormalization(mixed $data, string $type, ?string $format = null, array\ \ $context = []): bool\n# {\n# return parent::supportsDenormalization($data, $type,\ \ $format) && $this->supports($type, false);\n# }\n# \n# /**\n# * Checks if the\ \ given class has any getter or setter method." - name: isGetMethod visibility: private parameters: - name: method comment: '# * Checks if a method''s name matches /^(get|is|has).+$/ and can be called non-statically without parameters.' - name: isSetMethod visibility: private parameters: - name: method comment: '# * Checks if a method''s name matches /^set.+$/ and can be called non-statically with one parameter.' - name: extractAttributes visibility: protected parameters: - name: object - name: format default: 'null' - name: context default: '[]' comment: null - name: getAttributeValue visibility: protected parameters: - name: object - name: attribute - name: format default: 'null' - name: context default: '[]' comment: null - name: setAttributeValue visibility: protected parameters: - name: object - name: attribute - name: value - name: format default: 'null' - name: context default: '[]' comment: null - name: isAllowedAttribute visibility: protected parameters: - name: classOrObject - name: attribute - name: format default: 'null' - name: context default: '[]' comment: null traits: - Symfony\Component\Serializer\Attribute\Ignore interfaces: []