You are here

function rdfx_add_literal in RDF Extensions 7.2

Adds a literal object.

1 call to rdfx_add_literal()
rdfx_add_statement in ./rdfx.module
Adds an RDF statement between the entity and the property. These statements can have either resource or literal objects.

File

./rdfx.module, line 275
Extends the RDF API of Drupal core to support more RDF seralizations formats other RDF capabilities.

Code

function rdfx_add_literal(&$index, $uri, $property, EntityMetadataWrapper $wrapper, $name) {
  $predicates = rdfx_get_predicates($wrapper, $name);
  $object_value = $property
    ->value();

  // Extracts datatype and callback from the RDF mapping.
  $datatype = '';
  if ($wrapper instanceof EntityDrupalWrapper) {
    $entity = $wrapper
      ->value();
    if (!empty($entity->rdf_mapping[$name]['datatype'])) {
      $datatype = $entity->rdf_mapping[$name]['datatype'];
    }
    if (!empty($entity->rdf_mapping[$name]['callback']) && function_exists($entity->rdf_mapping[$name]['callback'])) {
      $object_value = $entity->rdf_mapping[$name]['callback']($object_value);
    }
  }
  foreach ($predicates as $predicate) {
    $index[$uri][$predicate][] = array(
      'value' => $object_value,
      'type' => 'literal',
      'datatype' => $datatype,
    );
  }
}