<?php declare(strict_types=1); /** * CakePHP(tm) : Rapid Development Framework (https://cakephp.org) * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) * * Licensed under The MIT License * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) * @link https://cakephp.org CakePHP(tm) Project * @since 3.2.0 * @license https://opensource.org/licenses/mit-license.php MIT License */ namespace Cake\Datasource; /** * Describes the methods that any class representing a data storage should * comply with. */ interface InvalidPropertyInterface { /** * Get a list of invalid fields and their data for errors upon validation/patching * * @return array */ public function getInvalid(): array; /** * Set fields as invalid and not patchable into the entity. * * This is useful for batch operations when one needs to get the original value for an error message after patching. * This value could not be patched into the entity and is simply copied into the _invalid property for debugging * purposes or to be able to log it away. * * @param array<string, mixed> $fields The values to set. * @param bool $overwrite Whether to overwrite pre-existing values for $field. * @return $this */ public function setInvalid(array $fields, bool $overwrite = false); /** * Get a single value of an invalid field. Returns null if not set. * * @param string $field The name of the field. * @return mixed|null */ public function getInvalidField(string $field); /** * Sets a field as invalid and not patchable into the entity. * * @param string $field The value to set. * @param mixed $value The invalid value to be set for $field. * @return $this */ public function setInvalidField(string $field, $value); }