Finish refactoring mapping creation

This commit is contained in:
Thibaud Fabre
2016-10-18 20:06:49 +02:00
parent 7a71886dc9
commit f2cfe93f8c
13 changed files with 552 additions and 226 deletions

View File

@@ -0,0 +1,74 @@
<?php
/*
* This file is part of phrasea-4.0.
*
* (c) Alchemy <info@alchemy.fr>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Alchemy\Phrasea\SearchEngine\Elastic;
use Alchemy\Phrasea\SearchEngine\Elastic\Mapping\DateFieldMapping;
use Alchemy\Phrasea\SearchEngine\Elastic\Mapping\StringFieldMapping;
class MappingBuilder
{
/**
* @var Mapping
*/
private $mapping;
public function __construct()
{
$this->mapping = new Mapping();
}
/**
* @param string $name;
* @return StringFieldMapping
*/
public function addStringField($name)
{
return $this->mapping->addField(new StringFieldMapping($name));
}
/**
* @param string $name
* @param string $format
* @return DateFieldMapping
*/
public function addDateField($name, $format)
{
return $this->mapping->addField(new DateFieldMapping($name, $format));
}
/**
* @param string $name
* @param string $type
* @return FieldMapping
*/
public function addField($name, $type)
{
return $this->mapping->addField(new FieldMapping($name, $type));
}
/***
* @param FieldMapping $fieldMapping
* @return FieldMapping
*/
public function add(FieldMapping $fieldMapping)
{
return $this->mapping->addField($fieldMapping);
}
/**
* @return Mapping
*/
public function getMapping()
{
return $this->mapping;
}
}