class SolrDocumentDefinition in Search API Solr 8.3
Same name and namespace in other branches
- 8.2 src/TypedData/SolrDocumentDefinition.php \Drupal\search_api_solr\TypedData\SolrDocumentDefinition
- 4.x src/TypedData/SolrDocumentDefinition.php \Drupal\search_api_solr\TypedData\SolrDocumentDefinition
A typed data definition class for describing Solr documents.
Hierarchy
- class \Drupal\Core\TypedData\DataDefinition implements \Drupal\Core\TypedData\ArrayAccess, DataDefinitionInterface uses TypedDataTrait
- class \Drupal\Core\TypedData\ComplexDataDefinitionBase implements ComplexDataDefinitionInterface
- class \Drupal\search_api_solr\TypedData\SolrDocumentDefinition implements SolrDocumentDefinitionInterface
- class \Drupal\Core\TypedData\ComplexDataDefinitionBase implements ComplexDataDefinitionInterface
Expanded class hierarchy of SolrDocumentDefinition
1 file declares its use of SolrDocumentDefinition
- SolrDocument.php in src/
Plugin/ DataType/ SolrDocument.php
File
- src/
TypedData/ SolrDocumentDefinition.php, line 11
Namespace
Drupal\search_api_solr\TypedDataView source
class SolrDocumentDefinition extends ComplexDataDefinitionBase implements SolrDocumentDefinitionInterface {
/**
* The Search API server the Solr document definition belongs to.
*
* @var \Drupal\search_api\ServerInterface
*/
protected $server;
/**
* Creates a new Solr document definition.
*
* @param string $index_id
* The Search Api index the Solr document definition belongs to.
*
* @return static
*/
public static function create($index_id = NULL) {
$definition['type'] = $index_id ? 'solr_document:' . $index_id : 'solr_document';
$document_definition = new static($definition);
if ($index_id) {
$document_definition
->setIndexId($index_id);
}
return $document_definition;
}
/**
* {@inheritdoc}
*/
public static function createFromDataType($data_type) {
// The data type should be in the form of "solr_document:$index_id" or
// "solr_multisite_document:$index_id".
$parts = explode(':', $data_type, 2);
if (!in_array($parts[0], [
'solr_document',
'solr_multisite_document',
])) {
throw new \InvalidArgumentException('Data type must be in the form of "solr_document:INDEX_ID" or solr_multisite_document:INDEX_ID.');
}
return self::create($parts[1]);
}
/**
* {@inheritdoc}
*/
public function getIndexId() {
return isset($this->definition['constraints']['Index']) ? $this->definition['constraints']['Index'] : NULL;
}
/**
* {@inheritdoc}
*/
public function setIndexId(string $index_id) {
return $this
->addConstraint('Index', $index_id);
}
/**
* {@inheritdoc}
*/
public function getPropertyDefinitions() {
if (!isset($this->propertyDefinitions)) {
$this->propertyDefinitions = [];
if (!empty($this
->getIndexId())) {
$index = Index::load($this
->getIndexId());
/** @var \Drupal\search_api_solr\SolrFieldManagerInterface $field_manager */
$field_manager = \Drupal::getContainer()
->get('solr_field.manager');
$this->propertyDefinitions = $field_manager
->getFieldDefinitions($index);
}
}
return $this->propertyDefinitions;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ComplexDataDefinitionBase:: |
protected | property | An array of data definitions. | |
ComplexDataDefinitionBase:: |
public | function |
Returns the name of the main property, if any. Overrides ComplexDataDefinitionInterface:: |
1 |
ComplexDataDefinitionBase:: |
public | function |
Gets the definition of a contained property. Overrides ComplexDataDefinitionInterface:: |
|
ComplexDataDefinitionBase:: |
public | function |
Overrides DataDefinition:: |
|
DataDefinition:: |
protected | property | The array holding values for all definition keys. | |
DataDefinition:: |
public | function |
Adds a validation constraint. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns the class used for creating the typed data object. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Returns a validation constraint. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns an array of validation constraints. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Returns the data type of the data. Overrides DataDefinitionInterface:: |
2 |
DataDefinition:: |
public | function |
Returns a human readable description. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns a human readable label. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns the value of a given setting. Overrides DataDefinitionInterface:: |
2 |
DataDefinition:: |
public | function |
Returns the array of settings, as required by the used class. Overrides DataDefinitionInterface:: |
2 |
DataDefinition:: |
public | function |
Determines whether the data value is computed. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Determines whether the data value is internal. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Returns whether the data is multi-valued, i.e. a list of data items. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Determines whether the data is read-only. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Determines whether a data value is required. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | Sets the class used for creating the typed data object. | |
DataDefinition:: |
public | function | Sets whether the data is computed. | |
DataDefinition:: |
public | function | Sets an array of validation constraints. | |
DataDefinition:: |
public | function | Sets the data type. | 1 |
DataDefinition:: |
public | function | Sets the human-readable description. | |
DataDefinition:: |
public | function | Sets the whether the data value should be internal. | |
DataDefinition:: |
public | function | Sets the human-readable label. | |
DataDefinition:: |
public | function | Sets whether the data is read-only. | |
DataDefinition:: |
public | function | Sets whether the data is required. | |
DataDefinition:: |
public | function | Sets a definition setting. | 2 |
DataDefinition:: |
public | function | Sets the array of settings, as required by the used class. | 2 |
DataDefinition:: |
public | function | Returns all definition values as array. | |
DataDefinition:: |
public | function | Constructs a new data definition object. | 1 |
SolrDocumentDefinition:: |
protected | property | The Search API server the Solr document definition belongs to. | |
SolrDocumentDefinition:: |
public static | function |
Creates a new Solr document definition. Overrides DataDefinition:: |
|
SolrDocumentDefinition:: |
public static | function |
Creates a new data definition object. Overrides DataDefinition:: |
|
SolrDocumentDefinition:: |
public | function |
Gets the Search API Index ID. Overrides SolrDocumentDefinitionInterface:: |
|
SolrDocumentDefinition:: |
public | function |
Gets an array of property definitions of contained properties. Overrides ComplexDataDefinitionBase:: |
|
SolrDocumentDefinition:: |
public | function |
Sets the Search API Index ID. Overrides SolrDocumentDefinitionInterface:: |
|
TypedDataTrait:: |
protected | property | The typed data manager used for creating the data types. | |
TypedDataTrait:: |
public | function | Gets the typed data manager. | 2 |
TypedDataTrait:: |
public | function | Sets the typed data manager. | 2 |