. * * 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\FieldProcessing\Loader; /** * Immutable. */ class Params { /** @var ?string[] */ private ?array $select = null; public function __construct() {} public function hasInSelect(string $field): bool { return $this->hasSelect() && in_array($field, $this->select ?? []); } public function hasSelect(): bool { return $this->select !== null; } /** * @return ?string[] */ public function getSelect(): ?array { return $this->select; } /** * @param ?string[] $select */ public function withSelect(?array $select): self { $obj = clone $this; $obj->select = $select; return $obj; } public static function create(): self { return new self(); } }