| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <?php
- namespace Elastica\Bulk;
- use Elastica\Response as BaseResponse;
- class ResponseSet extends BaseResponse implements \Iterator, \Countable
- {
- /**
- * @var \Elastica\Bulk\Response[]
- */
- protected $_bulkResponses = [];
- /**
- * @var int
- */
- protected $_position = 0;
- /**
- * @param \Elastica\Response $response
- * @param \Elastica\Bulk\Response[] $bulkResponses
- */
- public function __construct(BaseResponse $response, array $bulkResponses)
- {
- parent::__construct($response->getData());
- $this->_bulkResponses = $bulkResponses;
- }
- /**
- * @return \Elastica\Bulk\Response[]
- */
- public function getBulkResponses()
- {
- return $this->_bulkResponses;
- }
- /**
- * Returns first found error.
- *
- * @return string
- */
- public function getError()
- {
- foreach ($this->getBulkResponses() as $bulkResponse) {
- if ($bulkResponse->hasError()) {
- return $bulkResponse->getError();
- }
- }
- return '';
- }
- /**
- * Returns first found error (full array).
- *
- * @return array|string
- */
- public function getFullError()
- {
- foreach ($this->getBulkResponses() as $bulkResponse) {
- if ($bulkResponse->hasError()) {
- return $bulkResponse->getFullError();
- }
- }
- return '';
- }
- /**
- * @return bool
- */
- public function isOk()
- {
- foreach ($this->getBulkResponses() as $bulkResponse) {
- if (!$bulkResponse->isOk()) {
- return false;
- }
- }
- return true;
- }
- /**
- * @return bool
- */
- public function hasError()
- {
- foreach ($this->getBulkResponses() as $bulkResponse) {
- if ($bulkResponse->hasError()) {
- return true;
- }
- }
- return false;
- }
- /**
- * @return \Elastica\Bulk\Response
- */
- public function current()
- {
- return $this->_bulkResponses[$this->key()];
- }
- public function next()
- {
- ++$this->_position;
- }
- /**
- * @return int
- */
- public function key()
- {
- return $this->_position;
- }
- /**
- * @return bool
- */
- public function valid()
- {
- return isset($this->_bulkResponses[$this->key()]);
- }
- public function rewind()
- {
- $this->_position = 0;
- }
- /**
- * @return int
- */
- public function count()
- {
- return count($this->_bulkResponses);
- }
- }
|