search_api-8.x-1.15/src/Plugin/search_api/data_type/value/TextValue.php
src/Plugin/search_api/data_type/value/TextValue.php
<?php
namespace Drupal\search_api\Plugin\search_api\data_type\value;
/**
* Represents a single value of a fulltext field.
*/
class TextValue implements TextValueInterface {
/**
* The current text value.
*
* @var string
*/
protected $text;
/**
* The original text value.
*
* @var string
*/
protected $originalText;
/**
* The tokens created for this text value (if any).
*
* @var \Drupal\search_api\Plugin\search_api\data_type\value\TextTokenInterface[]|null
*/
protected $tokens;
/**
* An array of properties for this text value.
*
* @var array
*/
protected $properties = [];
/**
* Constructs a TextValue object.
*
* @param string $text
* The original text value.
*/
public function __construct($text) {
$this->text = $this->originalText = $text;
}
/**
* {@inheritdoc}
*/
public function getText() {
return $this->text;
}
/**
* {@inheritdoc}
*/
public function toText() {
$tokens = $this->getTokens();
if ($tokens !== NULL) {
$to_string = function (TextTokenInterface $token) {
return $token->getText();
};
return implode(' ', array_map($to_string, $tokens));
}
return $this->getText();
}
/**
* {@inheritdoc}
*/
public function setText($text) {
$this->text = $text;
return $this;
}
/**
* {@inheritdoc}
*/
public function getOriginalText() {
return $this->originalText;
}
/**
* {@inheritdoc}
*/
public function setOriginalText($originalText) {
$this->originalText = $originalText;
return $this;
}
/**
* {@inheritdoc}
*/
public function getTokens() {
return $this->tokens;
}
/**
* {@inheritdoc}
*/
public function setTokens(array $tokens = NULL) {
$this->tokens = $tokens;
return $this;
}
/**
* {@inheritdoc}
*/
public function getProperties() {
return $this->properties;
}
/**
* {@inheritdoc}
*/
public function getProperty($name, $default = NULL) {
if (array_key_exists($name, $this->properties)) {
return $this->properties[$name];
}
return $default;
}
/**
* {@inheritdoc}
*/
public function setProperties(array $properties) {
$this->properties = $properties;
return $this;
}
/**
* {@inheritdoc}
*/
public function setProperty($name, $value = TRUE) {
$this->properties[$name] = $value;
return $this;
}
/**
* Implements the magic __toString() method.
*/
public function __toString() {
return $this->toText();
}
}
