protected function calculateRelatableResourceTypes(ResourceType
$resource_type, array
$resource_types) { // For now, only fieldable entity types may contain relationships.
$entity_type =
$this->entityTypeManager->
getDefinition($resource_type->
getEntityTypeId());
if ($entity_type->
entityClassImplements(FieldableEntityInterface::
class)) { $field_definitions =
$this->entityFieldManager->
getFieldDefinitions( $resource_type->
getEntityTypeId(),
$resource_type->
getBundle() );
$relatable_internal =
array_map(function D
$field_definition) use ($resource_types) { return $this->
getRelatableResourceTypesFromFieldDefinition($field_definition,
$resource_types);
},
array_filter($field_definitions,
function D
$field_definition) { return $this->
isReferenceFieldDefinition($field_definition);
}));
$relatable_public =
[];
foreach ($relatable_internal as $internal_field_name =>
$value) { $relatable_public[$resource_type->
getPublicName($internal_field_name)] =
$value;
} return $relatable_public;
} return [];
}