public DocTableInfo build() { DocIndexMetaData md = docIndexMetaData(); List<PartitionName> partitions = new ArrayList<>(); if (md.partitionedBy().size() > 0) { for (String index : concreteIndices) { if (PartitionName.isPartition(index)) { try { PartitionName partitionName = PartitionName.fromIndexOrTemplate(index); assert partitionName.tableIdent().equals(ident); partitions.add(partitionName); } catch (IllegalArgumentException e) { // ignore logger.warn( String.format( Locale.ENGLISH, "Cannot build partition %s of index %s", index, ident.indexName())); } } } } return new DocTableInfo( ident, md.columns(), md.partitionedByColumns(), md.generatedColumnReferences(), md.indices(), md.references(), md.analyzers(), md.primaryKey(), md.routingCol(), md.isAlias(), md.hasAutoGeneratedPrimaryKey(), concreteIndices, clusterService, md.numberOfShards(), md.numberOfReplicas(), md.tableParameters(), md.partitionedBy(), partitions, md.columnPolicy(), executorService); }