Official Riak Client for PHP
  • Namespace
  • Class
  • Tree

Namespaces

  • Basho
    • Riak
      • Api
        • Http
          • Translator
      • Command
        • Bucket
        • Builder
          • MapReduce
          • Search
          • TimeSeries
        • DataType
          • Counter
          • Map
          • Set
        • Indexes
        • MapReduce
        • Object
        • Search
          • Index
          • Schema
        • Stats
        • TimeSeries
          • Query
      • DataType
      • Node
        • Builder
      • Search
      • TimeSeries

Classes

  • Basho\Riak
  • Basho\Riak\Api
  • Basho\Riak\Api\Http
  • Basho\Riak\Api\Http\Translator\ObjectResponse
  • Basho\Riak\Api\Http\Translator\SecondaryIndex
  • Basho\Riak\Bucket
  • Basho\Riak\Command
  • Basho\Riak\Command\Bucket\Delete
  • Basho\Riak\Command\Bucket\Fetch
  • Basho\Riak\Command\Bucket\Response
  • Basho\Riak\Command\Bucket\Store
  • Basho\Riak\Command\Builder
  • Basho\Riak\Command\Builder\DeleteObject
  • Basho\Riak\Command\Builder\FetchBucketProperties
  • Basho\Riak\Command\Builder\FetchCounter
  • Basho\Riak\Command\Builder\FetchMap
  • Basho\Riak\Command\Builder\FetchObject
  • Basho\Riak\Command\Builder\FetchPreflist
  • Basho\Riak\Command\Builder\FetchSet
  • Basho\Riak\Command\Builder\FetchStats
  • Basho\Riak\Command\Builder\IncrementCounter
  • Basho\Riak\Command\Builder\MapReduce\FetchObjects
  • Basho\Riak\Command\Builder\Ping
  • Basho\Riak\Command\Builder\QueryIndex
  • Basho\Riak\Command\Builder\Search\AssociateIndex
  • Basho\Riak\Command\Builder\Search\DeleteIndex
  • Basho\Riak\Command\Builder\Search\DissociateIndex
  • Basho\Riak\Command\Builder\Search\FetchIndex
  • Basho\Riak\Command\Builder\Search\FetchObjects
  • Basho\Riak\Command\Builder\Search\FetchSchema
  • Basho\Riak\Command\Builder\Search\StoreIndex
  • Basho\Riak\Command\Builder\Search\StoreSchema
  • Basho\Riak\Command\Builder\SetBucketProperties
  • Basho\Riak\Command\Builder\StoreObject
  • Basho\Riak\Command\Builder\TimeSeries\DeleteRow
  • Basho\Riak\Command\Builder\TimeSeries\DescribeTable
  • Basho\Riak\Command\Builder\TimeSeries\FetchRow
  • Basho\Riak\Command\Builder\TimeSeries\Query
  • Basho\Riak\Command\Builder\TimeSeries\StoreRows
  • Basho\Riak\Command\Builder\UpdateMap
  • Basho\Riak\Command\Builder\UpdateSet
  • Basho\Riak\Command\DataType\Counter\Fetch
  • Basho\Riak\Command\DataType\Counter\Response
  • Basho\Riak\Command\DataType\Counter\Store
  • Basho\Riak\Command\DataType\Map\Fetch
  • Basho\Riak\Command\DataType\Map\Response
  • Basho\Riak\Command\DataType\Map\Store
  • Basho\Riak\Command\DataType\Set\Fetch
  • Basho\Riak\Command\DataType\Set\Response
  • Basho\Riak\Command\DataType\Set\Store
  • Basho\Riak\Command\Indexes\Query
  • Basho\Riak\Command\Indexes\Response
  • Basho\Riak\Command\MapReduce\Fetch
  • Basho\Riak\Command\MapReduce\Response
  • Basho\Riak\Command\Object
  • Basho\Riak\Command\Object\Delete
  • Basho\Riak\Command\Object\Fetch
  • Basho\Riak\Command\Object\FetchPreflist
  • Basho\Riak\Command\Object\Response
  • Basho\Riak\Command\Object\Store
  • Basho\Riak\Command\Ping
  • Basho\Riak\Command\Response
  • Basho\Riak\Command\Search\Fetch
  • Basho\Riak\Command\Search\Index\Delete
  • Basho\Riak\Command\Search\Index\Fetch
  • Basho\Riak\Command\Search\Index\Response
  • Basho\Riak\Command\Search\Index\Store
  • Basho\Riak\Command\Search\Response
  • Basho\Riak\Command\Search\Schema\Fetch
  • Basho\Riak\Command\Search\Schema\Response
  • Basho\Riak\Command\Search\Schema\Store
  • Basho\Riak\Command\Stats
  • Basho\Riak\Command\Stats\Response
  • Basho\Riak\Command\TimeSeries\Delete
  • Basho\Riak\Command\TimeSeries\Fetch
  • Basho\Riak\Command\TimeSeries\Query\Fetch
  • Basho\Riak\Command\TimeSeries\Query\Response
  • Basho\Riak\Command\TimeSeries\Response
  • Basho\Riak\Command\TimeSeries\Store
  • Basho\Riak\DataType
  • Basho\Riak\DataType\Counter
  • Basho\Riak\DataType\Map
  • Basho\Riak\DataType\Set
  • Basho\Riak\Location
  • Basho\Riak\Node
  • Basho\Riak\Node\Builder
  • Basho\Riak\Node\Config
  • Basho\Riak\Object
  • Basho\Riak\Search\Doc
  • Basho\Riak\TimeSeries\Cell

Interfaces

  • Basho\Riak\ApiInterface
  • Basho\Riak\Command\BuilderInterface
  • Basho\Riak\CommandInterface

Traits

  • Basho\Riak\Command\Builder\BucketTrait
  • Basho\Riak\Command\Builder\IndexTrait
  • Basho\Riak\Command\Builder\LocationTrait
  • Basho\Riak\Command\Builder\ObjectTrait
  • Basho\Riak\Command\Builder\TimeSeries\KeyTrait
  • Basho\Riak\Command\Builder\TimeSeries\RowsTrait
  • Basho\Riak\Command\Builder\TimeSeries\TableTrait
  • Basho\Riak\HeadersTrait

Exceptions

  • Basho\Riak\Api\Exception
  • Basho\Riak\Command\Builder\Exception
  • Basho\Riak\Command\Exception
  • Basho\Riak\DataType\Exception
  • Basho\Riak\Exception
  • Basho\Riak\Node\Builder\Exception
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 
<?php

namespace Basho\Riak\Command\Builder;

use Basho\Riak;
use Basho\Riak\Command;

/**
 * @author Christopher Mancini <cmancini at basho d0t com>
 */
class UpdateSet extends Command\Builder implements Command\BuilderInterface
{
    use LocationTrait;

    /**
     * @var array
     */
    protected $add_all = [];

    /**
     * @var array
     */
    protected $remove_all = [];

    /**
     * Similar to Vector Clocks, the context allows us to determine the state of a CRDT Set
     *
     * @var string
     */
    protected $context = '';

    /**
     * @param mixed $element
     *
     * @return $this
     */
    public function add($element)
    {
        settype($element, 'string');
        $this->add_all[] = $element;

        return $this;
    }

    /**
     * @param mixed $element
     *
     * @return $this
     */
    public function remove($element)
    {
        settype($element, 'string');
        $this->remove_all[] = $element;

        return $this;
    }

    /**
     * @param $context
     *
     * @return $this
     */
    public function withContext($context)
    {
        $this->context = $context;

        return $this;
    }

    /**
     * @return array
     */
    public function getAddAll()
    {
        return $this->add_all;
    }

    /**
     * @return array
     */
    public function getRemoveAll()
    {
        return $this->remove_all;
    }

    /**
     * getContext
     *
     * @return string
     */
    public function getContext()
    {
        return $this->context;
    }

    /**
     * {@inheritdoc}
     *
     * @return Command\DataType\Set\Store
     */
    public function build()
    {
        $this->validate();

        return new Command\DataType\Set\Store($this);
    }

    /**
     * {@inheritdoc}
     */
    public function validate()
    {
        $this->required('Bucket');

        $count_add = count($this->add_all);
        $count_remove = count($this->remove_all);

        if ($count_add + $count_remove < 1) {
            throw new Exception('At least one element to add or remove needs to be defined.');
        }

        // if we are performing a remove, Location and context are required
        if ($count_remove) {
            $this->required('Location');
            $this->required('Context');
        }
    }
}
Official Riak Client for PHP API documentation generated by ApiGen