*/ declare(strict_types = 1); /** * Provides lists for categorizing spelled out ownership status types. */ final class MDConcOwnershipStatus implements MDImporterConcordanceListInterface { private const OWNERSHIP_TYPES_VERBOSE = [ // 0: No known entry type "Eigentum" => "owned", "EigentumZCOM" => "owned", "Geschenk" => "owned", "Besitz" => "owned", "Owned" => "owned", "owned" => "owned", "Kauf" => "owned", "Fund" => "owned", "Eigenleistung" => "owned", "Eigentum des Museums" => "owned", "Eigentum des Museums - TEST" => "owned", "j" => "owned", "+" => "owned", "EigentumForum" => "owned", "Eigentum Land Berlin" => "owned", // Permanent loans "Dauerleihe" => "permanent_loan", "Dauerleihgabe" => "permanent_loan", "Permanent loan" => "permanent_loan", "permanent loan" => "permanent_loan", // Loans "Leihe" => "borrowed", "Leihgabe" => "borrowed", "Ensemble soll bei Umzug des Möbeldepots an Senat zurückgegeben werden (Jan. 2009)" => "borrowed", "Leihgabe 13.8.96" => "borrowed", // Owned by others => third_party_property 'Third party property' => 'third_party_property', 'Fremdeigentum' => 'third_party_property', // Deaccessed 'Deaccessed' => 'deaccessed', 'deakzessioniert' => 'deaccessed', 'Deakzessioniert' => 'deaccessed', 'Deakzession' => 'deaccessed', 'Deakzessiert' => 'deaccessed', // To check 'ungeklärt' => 'to_check', // None 'k.A.' => 'owned', ]; /** * Require a function for getting the concordance target. * * @param string $input Input string. * * @return string */ public static function getConcordanceTarget(string $input):string { if (!isset(self::OWNERSHIP_TYPES_VERBOSE[$input])) { if (isset(self::OWNERSHIP_TYPES_VERBOSE[trim($input)])) { return self::OWNERSHIP_TYPES_VERBOSE[trim($input)]; } MDImporterMissingConcordance::throw("ownership", $input); return 'deaccessed'; // Return default in dry-run mode } return self::OWNERSHIP_TYPES_VERBOSE[$input]; } }