. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\FieldSanitize\Sanitizer; use stdClass; /** * Input data. No 'clear' method, as unsetting is not supposed to happen in sanitization. */ class Data { public function __construct(private stdClass $data) {} /** * Get a value. */ public function get(string $attribute): mixed { return $this->data->$attribute ?? null; } /** * Whether a value is set. */ public function has(string $attribute): bool { return property_exists($this->data, $attribute); } /** * Update a value. */ public function set(string $attribute, mixed $value): self { $this->data->$attribute = $value; return $this; } /** * Unset an attribute. */ public function clear(string $attribute): self { unset($this->data->$attribute); return $this; } }