1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
<?php
namespace GeniBase\Util;
use Gedcomx\Util\Collection;
/**
* Class JsonMapper
*
* @package GeniBase\Util
*
* Stores the mapping between class names and JSON attribute names
*/
class JsonMapper
{
private static $collection;
/**
* Initialize the collection object with the map
*/
private static function init()
{
self::$collection = new Collection(
array(
// 'Gedcomx\Gedcomx' => 'gedcomx',
)
);
}
/**
* Get the collection or initialize it if empty.
*
* @return Collection
*/
private static function collection()
{
if (self::$collection == null) {
self::init();
}
return self::$collection;
}
/**
* Return whether or not we recognize the tag name
*
* @param string $key
*
* @return bool
*/
public static function isKnownType($key)
{
return self::collection()->contains($key);
}
/**
* Return the JSON attribute name for a given class name
*
* @param $class
*
* @return string
*/
public static function getJsonKey($class)
{
return self::collection()->get($class);
}
/**
* Return the class name associated with a JSON attribute name
*
* @param $json
*
* @return mixed
*/
public static function getClassName($json)
{
return self::collection()->getKey($json);
}
}