Tripal
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface Interface Reference
Inheritance diagram for Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface:
Inheritance graph
[legend]
Collaboration diagram for Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface:
Collaboration graph
[legend]

Public Member Functions

 tripalStorageId ()
 
 tripalValuesTemplate ($field_definition, $default_value=NULL)
 
 tripalLoad ($field_item, $field_name, $prop_types, $prop_values, $entity)
 
 tripalSave ($field_item, $field_name, $prop_types, $prop_values, $entity)
 
 tripalClear ($field_item, $field_name, $prop_types, $prop_values, $entity)
 

Static Public Member Functions

static tripalTypes ($field_definition)
 
static discover (TripalEntityType $bundle, string $field_id, array $field_types, array $field_instances)
 

Member Function Documentation

◆ discover()

static Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface::discover ( TripalEntityType  $bundle,
string  $field_id,
array  $field_types,
array  $field_instances 
)
static

Finds new instances of this field for a given content type.

Fields are added to Tripal using the tripal.tripalfield_collection.* configuration file during installation of a module. In some cases, however, not all possible instances of a field can be added to a content type at installation of the module. This function can be called to discover if new instances of a field are appropriate for a given content type. An example of this is the chado_property_type_default field. This function should examine its storage backend and return a list of new fields instances that could be added to the content type (i.e., bundle).

Parameters
\Drupal\tripal\Entity\TripalEntityType$bundleThe entity type object for which new field instances should be found.
string$field_idThe id of the field.
array$field_typesAn array where each item defines a field type that is attached to this bundle. Each item is itself an array of the annotation defined at the top of that particular field type class.
array$field_instancesAn array of FieldConfig objects where each object defines a field attached to this content type. This differs from $field_types in that (1) there will be multiple entries if there a multiple instances of a single field type and (2) it includes the specific settings needed to create the field. As such, the FieldConfig object can be used to add existing fields to the field list returned by this method.
Returns
array An associative array that follows the same structure as expected by tripal.tripalfield_collection.* configuration.

Implemented in Drupal\tripal\TripalField\TripalFieldItemBase, and Drupal\tripal_test\Plugin\Field\FieldType\TripalTestTextTypeItem.

◆ tripalClear()

Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface::tripalClear (   $field_item,
  $field_name,
  $prop_types,
  $prop_values,
  $entity 
)

Clears all field values from the given entity.

This is to prevent Drupal from storing field values when they are being stored in the Tripal field storage backend.

Parameters
\Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface$field_itemThe field item for which properties should be saved.
string$field_nameThe name of the field.
array$prop_typesArray of \Drupal\tripal\TripalStorage\StoragePropertyType objects.
array$prop_valuesArray of \Drupal\tripal\TripalStorage\StoragePropertyValue objects.
\Drupal\tripal\TripalStorage\TripalEntityBase$entityThe entity.

Implemented in Drupal\tripal\TripalField\TripalFieldItemBase.

◆ tripalLoad()

Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface::tripalLoad (   $field_item,
  $field_name,
  $prop_types,
  $prop_values,
  $entity 
)

Loads the values from the given array of properties to the given entity.

Parameters
\Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface$field_itemThe field item for which properties should be saved.
string$field_nameThe name of the field.
array$prop_typesArray of \Drupal\tripal\TripalStorage\StoragePropertyType objects.
array$prop_valuesArray of \Drupal\tripal\TripalStorage\StoragePropertyValue objects.
\Drupal\tripal\TripalStorage\TripalEntityBase$entityThe entity.

Implemented in Drupal\tripal\TripalField\TripalFieldItemBase.

◆ tripalSave()

Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface::tripalSave (   $field_item,
  $field_name,
  $prop_types,
  $prop_values,
  $entity 
)

Saves the values to the given array of properties from the given entity.

Parameters
\Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface$field_itemThe field item for which properties should be saved.
string$field_nameThe name of the field.
array$prop_typesArray of \Drupal\tripal\TripalStorage\StoragePropertyType objects.
array$prop_valuesArray of \Drupal\tripal\TripalStorage\StoragePropertyValue objects.
\Drupal\tripal\TripalStorage\TripalEntityBase$entityThe entity.

Implemented in Drupal\tripal\TripalField\TripalFieldItemBase.

◆ tripalStorageId()

Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface::tripalStorageId ( )

Returns the tripal storage plugin id for this field.

Returns
string The tripal storage plugin id.

Implemented in Drupal\tripal\TripalField\TripalFieldItemBase.

◆ tripalTypes()

static Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface::tripalTypes (   $field_definition)
static

Returns the property types required by this field.

Parameters
object$field_definitionThe field configuration object. This can be an instance of: \Drupal\field\Entity\FieldStorageConfig or \Drupal\field\Entity\FieldConfig
Returns
array Array of \Drupal\tripal\TripalStorage\StoragePropertyTypeBase property types.

Implemented in Drupal\tripal\Plugin\Field\FieldType\TripalBooleanTypeItem, Drupal\tripal\Plugin\Field\FieldType\TripalIntegerTypeItem, Drupal\tripal\Plugin\Field\FieldType\TripalStringTypeItem, Drupal\tripal\Plugin\Field\FieldType\TripalTextTypeItem, Drupal\tripal_test\Plugin\Field\FieldType\TripalTestTextTypeItem, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoAdditionalTypeTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoAnalysisTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoArrayDesignTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoAssayTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoBiomaterialTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoBooleanTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoContactByRoleTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoContactTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoDbxrefTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoFeatureMapTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoFeatureTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoIntegerTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoOrganismTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoProjectTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoPropertyTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoProtocolTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoRelationshipTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoSequenceChecksumTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoSequenceCoordinatesDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoSequenceLengthTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoSequenceTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoSourceDataTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoStockTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoStringTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoStudyTypeDefault, Drupal\tripal_chado\Plugin\Field\FieldType\ChadoSynonymTypeDefault, and Drupal\tripal_chado\Plugin\Field\FieldType\ChadoTextTypeDefault.

◆ tripalValuesTemplate()

Drupal\tripal\TripalField\Interfaces\TripalFieldItemInterface::tripalValuesTemplate (   $field_definition,
  $default_value = NULL 
)

Returns an array of StoragePropertyValue objects.

This array seves as as "template" for loading, storing and finding fields in the underlying data store. Each fiels' property types will have a corresponding value in this array. If the $default_value is provided then the property whose key is returend by the mainPropertyName() function will get set.

Fields normally do not need to implement this function. However, if the $default_value argument is used and the default value is not the value stored in the underlying datastore (e.g., the value is a combination of all of the property values), then the implementing function can override this function to split the value and set the values for the other properties.

Parameters
object$field_definitionThe field configuration object. This can be an instance of: \Drupal\field\Entity\FieldStorageConfig or \Drupal\field\Entity\FieldConfig
$default_valueOptional. If a value is provided then then the property whose key is returned by the mainPropertyName() function will get set to the value provided.
Returns
array Array of \Drupal\tripal\TripalStorage\StoragePropertyValue property value templates.

Implemented in Drupal\tripal\TripalField\TripalFieldItemBase.


The documentation for this interface was generated from the following file: