. * * 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\ORM\Query; class LockTableBuilder implements Builder { use BaseBuilderTrait; /** * Create an instance. */ public static function create(): self { return new self(); } /** * Build a LOCK TABLE query. */ public function build(): LockTable { return LockTable::fromRaw($this->params); } /** * Clone an existing query for a subsequent modifying and building. */ public function clone(LockTable $query): self { $this->cloneInternal($query); return $this; } /** * What entity type to lock. */ public function table(string $entityType): self { $this->params['table'] = $entityType; return $this; } /** * In SHARE mode. */ public function inShareMode(): self { $this->params['mode'] = LockTable::MODE_SHARE; return $this; } /** * In EXCLUSIVE mode. */ public function inExclusiveMode(): self { $this->params['mode'] = LockTable::MODE_EXCLUSIVE; return $this; } }