public function mapWithCompositeTypes()
{
$mapKeyTypes = array_map(function ($cassandraType) {
$mapType = Type::map($cassandraType[0], Type::int());
$values = $cassandraType[1];
$map = $mapType->create();
for ($i = 0; $i < count($cassandraType[1]); $i++) {
$map->set($values[$i], $i);
}
return array($mapType, $map);
}, $this->compositeCassandraTypes());
$mapValueTypes = array_map(function ($cassandraType) {
$mapType = Type::map(Type::int(), $cassandraType[0]);
$values = $cassandraType[1];
$map = $mapType->create();
for ($i = 0; $i < count($cassandraType[1]); $i++) {
$map->set($i, $values[$i]);
}
return array($mapType, $map);
}, $this->compositeCassandraTypes());
return array_merge($mapKeyTypes, $mapValueTypes);
}