in src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/MetadataCache.java [124:143]
static EntityMetadata parse(Measure m) {
int totalTags = 0;
final int[] tagFamilyCapacity = new int[m.getTagFamiliesList().size()];
final Map<String, TagInfo> tagOffset = new HashMap<>();
int k = 0;
for (int i = 0; i < m.getTagFamiliesList().size(); i++) {
final String tagFamilyName = m.getTagFamiliesList().get(i).getName();
tagFamilyCapacity[i] = m.getTagFamiliesList().get(i).getTagsList().size();
totalTags += tagFamilyCapacity[i];
for (int j = 0; j < tagFamilyCapacity[i]; j++) {
tagOffset.put(m.getTagFamiliesList().get(i).getTagsList().get(j).getName(), new TagInfo(tagFamilyName, k++));
}
}
final Map<String, Integer> fieldOffset = new HashMap<>();
for (int i = 0; i < m.getFieldsList().size(); i++) {
fieldOffset.put(m.getFieldsList().get(i).getName(), i);
}
return new EntityMetadata(m.getMetadata().getGroup(), m.getMetadata().getName(), m.getMetadata().getModRevision(), totalTags, m.getFieldsList().size(), tagFamilyCapacity,
Collections.unmodifiableMap(tagOffset), Collections.unmodifiableMap(fieldOffset));
}