jon48/webtrees-lib

View on GitHub
app/Contracts/GeoDispersion/MapViewConfigInterface.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

/**
 * webtrees-lib: MyArtJaub library for webtrees
 *
 * @package MyArtJaub\Webtrees
 * @subpackage GeoDispersion
 * @author Jonathan Jaubart <dev@jaubart.com>
 * @copyright Copyright (c) 2021-2022, Jonathan Jaubart
 * @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3
 */

declare(strict_types=1);

namespace MyArtJaub\Webtrees\Contracts\GeoDispersion;

/**
 * Interface for configuration of a map view.
 */
interface MapViewConfigInterface
{
    /**
     * Get the feature property to be used for mapping the map feature with the analysis results
     *
     * @return string
     */
    public function mapMappingProperty(): string;

    /**
     * Get the config of the mapper associated with the map view
     *
     * @return PlaceMapperConfigInterface
     */
    public function mapperConfig(): PlaceMapperConfigInterface;

    /**
     * Get a MapViewConfigInterface object with the new properties
     *
     * @param string $mapping_property
     * @param PlaceMapperConfigInterface $mapper_config
     * @return static
     */
    public function with(string $mapping_property, PlaceMapperConfigInterface $mapper_config): self;
}