itemsOffset = $itemsOffset; return $this; } /** * @return int */ public function getItemsOffset(): int { return $this->itemsOffset; } /** * @param int $itemsLimit * * @return BasicProbe */ public function setItemsLimit(int $itemsLimit): self { $this->itemsLimit = $itemsLimit; return $this; } /** * @return int */ public function getItemsLimit(): int { return $this->itemsLimit; } /** * @param int $details * * @return $this */ public function setDetails(int $details): self { $this->details = $details; } /** * @return int */ public function getDetails(): int { return $this->details; } /** * @param int $detail * * @return $this */ public function addDetail(int $detail): self { $this->details |= $detail; return $this; } /** * @param int $detail * * @return bool */ public function showDetail(int $detail): bool { return (($this->getDetails() & $detail) !== 0); } /** * @param Circle $filterCircle * * @return CircleProbe */ public function setFilterCircle(Circle $filterCircle): self { $this->filterCircle = $filterCircle; return $this; } /** * @return Circle */ public function getFilterCircle(): Circle { return $this->filterCircle; } /** * @return bool */ public function hasFilterCircle(): bool { return !is_null($this->filterCircle); } /** * @param Member $filterMember * * @return CircleProbe */ public function setFilterMember(Member $filterMember): self { $this->filterMember = $filterMember; return $this; } /** * @return Member */ public function getFilterMember(): Member { return $this->filterMember; } /** * @return bool */ public function hasFilterMember(): bool { return !is_null($this->filterMember); } /** * @param RemoteInstance $filterRemoteInstance * * @return CircleProbe */ public function setFilterRemoteInstance(RemoteInstance $filterRemoteInstance): self { $this->filterRemoteInstance = $filterRemoteInstance; return $this; } /** * @return RemoteInstance */ public function getFilterRemoteInstance(): RemoteInstance { return $this->filterRemoteInstance; } /** * @return bool */ public function hasFilterRemoteInstance(): bool { return !is_null($this->filterRemoteInstance); } /** * @param string $key * @param string $value * * @return $this */ public function addOption(string $key, string $value): self { $this->options[$key] = $value; return $this; } /** * @param string $key * @param int $value * * @return $this */ public function addOptionInt(string $key, int $value): self { $this->options[$key] = $value; return $this; } /** * @param string $key * @param bool $value * * @return $this */ public function addOptionBool(string $key, bool $value): self { $this->options[$key] = $value; return $this; } /** * @return array */ public function getAsOptions(): array { return array_merge( $this->options, [ 'offset' => $this->getItemsOffset(), 'limit' => $this->getItemsLimit(), 'details' => $this->getDetails(), 'detailsAll' => ($this->getDetails() === self::DETAILS_ALL) ] ); } /** * @return array */ public function JsonSerialize(): array { return $this->getAsOptions(); } }