static EntityMetadata parse()

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));
    }