farm-2.x-dev/modules/core/location/src/LogLocationInterface.php
modules/core/location/src/LogLocationInterface.php
<?php namespace Drupal\farm_location; use Drupal\log\Entity\LogInterface; /** * The interface for log location logic. */ interface LogLocationInterface { /** * Check if a log references location assets. * * @param \Drupal\log\Entity\LogInterface $log * The Log entity. * * @return bool * Returns TRUE if the log references location assets, FALSE otherwise. */ public function hasLocation(LogInterface $log): bool; /** * Check if a log has geometry. * * @param \Drupal\log\Entity\LogInterface $log * The Log entity. * * @return bool * Returns TRUE if the log has geometry, FALSE otherwise. */ public function hasGeometry(LogInterface $log): bool; /** * Get location assets referenced by a log. * * @param \Drupal\log\Entity\LogInterface $log * The Log entity. * * @return array * Returns an array of assets. */ public function getLocation(LogInterface $log): array; /** * Get a log's geometry. * * @param \Drupal\log\Entity\LogInterface $log * The Log entity. * * @return string * Returns a WKT string. */ public function getGeometry(LogInterface $log): string; /** * Set a log's location. * * @param \Drupal\log\Entity\LogInterface $log * The Log entity. * @param \Drupal\asset\Entity\AssetInterface[] $assets * An array of location asset entities. */ public function setLocation(LogInterface $log, array $assets): void; /** * Set a log's geometry. * * @param \Drupal\log\Entity\LogInterface $log * The Log entity. * @param string $wkt * The geometry as a WKT string. */ public function setGeometry(LogInterface $log, string $wkt): void; }