in src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/MetadataCache.java [73:92]
static EntityMetadata parse(Measure m) {
int totalTags = 0;
final int[] tagFamilyCapacity = new int[m.tagFamilies().size()];
final Map<String, TagInfo> tagOffset = new HashMap<>();
int k = 0;
for (int i = 0; i < m.tagFamilies().size(); i++) {
final String tagFamilyName = m.tagFamilies().get(i).tagFamilyName();
tagFamilyCapacity[i] = m.tagFamilies().get(i).tagSpecs().size();
totalTags += tagFamilyCapacity[i];
for (int j = 0; j < tagFamilyCapacity[i]; j++) {
tagOffset.put(m.tagFamilies().get(i).tagSpecs().get(j).getTagName(), new TagInfo(tagFamilyName, k++));
}
}
final Map<String, Integer> fieldOffset = new HashMap<>();
for (int i = 0; i < m.fields().size(); i++) {
fieldOffset.put(m.fields().get(i).getName(), i);
}
return new EntityMetadata(m.group(), m.name(), totalTags, m.fields().size(), tagFamilyCapacity,
Collections.unmodifiableMap(tagOffset), Collections.unmodifiableMap(fieldOffset));
}