};
public Map<String, TableMetadata> fetchTableMetaData(Cluster cluster, Collection<EntityMeta> entityMetas) {
log.debug("Fetch existing table meta data from Cassandra");
final Metadata clusterMetadata = cluster.getMetadata();
final List<KeyspaceAndTable> keyspaceAndTables = FluentIterable.from(entityMetas).transform(EXTRACT_KEYSPACE_AND_TABLE).toList();
Map<String, TableMetadata> tableMetas = new HashMap<>();
for (KeyspaceAndTable keyspaceAndTable : keyspaceAndTables) {
final KeyspaceMetadata keyspaceMetadata = clusterMetadata.getKeyspace(keyspaceAndTable.keyspaceName);
Validator.validateTableTrue(keyspaceMetadata != null, "Keyspace '%s' doest not exist or cannot be found", keyspaceAndTable.keyspaceName);
final TableMetadata tableMetadata = keyspaceMetadata.getTable(keyspaceAndTable.tableName);
if (tableMetadata != null) {
tableMetas.put(keyspaceAndTable.qualifiedTableName, tableMetadata);