Lines Matching refs:metadata

52 …public function getValue(object $object, PropertyMetadata $metadata, SerializationContext $context)  argument
54 if ($metadata instanceof StaticPropertyMetadata) {
55 return $metadata->getValue(null);
58 if ($metadata instanceof ExpressionPropertyMetadata) {
60 … %s requires the expression accessor strategy to be enabled.', $metadata->name, $metadata->class));
63 … $variables = ['object' => $object, 'context' => $context, 'property_metadata' => $metadata];
65 …if (($metadata->expression instanceof Expression) && ($this->evaluator instanceof CompilableExpres…
66 return $this->evaluator->evaluateParsed($metadata->expression, $variables);
68 return $this->evaluator->evaluate($metadata->expression, $variables);
71 if (null === $metadata->getter) {
72 if (!isset($this->readAccessors[$metadata->class])) {
73 if (true === $metadata->forceReflectionAccess) {
74 $this->readAccessors[$metadata->class] = function ($o, $name) use ($metadata) {
75 $ref = $this->propertyReflectionCache[$metadata->class][$name] ?? null;
77 $ref = new \ReflectionProperty($metadata->class, $name);
79 $this->propertyReflectionCache[$metadata->class][$name] = $ref;
85 … $this->readAccessors[$metadata->class] = \Closure::bind(static function ($o, $name) {
87 }, null, $metadata->class);
91 return $this->readAccessors[$metadata->class]($object, $metadata->name);
94 return $object->{$metadata->getter}();
100 …public function setValue(object $object, $value, PropertyMetadata $metadata, DeserializationContex… argument
102 if (true === $metadata->readOnly) {
103 … throw new LogicException(sprintf('%s on %s is read only.', $metadata->name, $metadata->class));
106 if (null === $metadata->setter) {
107 if (!isset($this->writeAccessors[$metadata->class])) {
108 if (true === $metadata->forceReflectionAccess) {
109 … $this->writeAccessors[$metadata->class] = function ($o, $name, $value) use ($metadata): void {
110 $ref = $this->propertyReflectionCache[$metadata->class][$name] ?? null;
112 $ref = new \ReflectionProperty($metadata->class, $name);
114 $this->propertyReflectionCache[$metadata->class][$name] = $ref;
120 …$this->writeAccessors[$metadata->class] = \Closure::bind(static function ($o, $name, $value): void…
122 }, null, $metadata->class);
126 $this->writeAccessors[$metadata->class]($object, $metadata->name, $value);
130 $object->{$metadata->setter}($value);