objectManager = $objectManager; $this->dimensionFactory = $dimensionFactory; $this->aliasFactory = $aliasFactory; } /** * @param string $indexId * @return self */ public function setIndexId(string $indexId): self { $this->data[self::$indexId] = $indexId; return $this; } /** * @param string $name * @param string $value * @return self */ public function addDimension(string $name, string $value): self { $this->data[self::$dimensions][] = $this->dimensionFactory->create([ 'name' => $name, 'value' => $value, ]); return $this; } /** * @param string $alias * @return self */ public function setAlias(string $alias): self { $this->data[self::$alias] = $this->aliasFactory->create(['value' => $alias]); return $this; } /** * @return IndexName */ public function build(): IndexName { $indexName = $this->objectManager->create(IndexName::class, $this->data); $this->data = []; return $indexName; } }