public static List<PbNode> parseNodePath(Descriptors.Descriptor rootDesc, String nodePath) {
        if (StringUtils.isBlank(nodePath)) {
            return null;
        }
        List<PbNode> nodes = new ArrayList<>();
        String[] nodeStrings = nodePath.split("\\.");
        int lastIndex = nodeStrings.length - 1;
        Descriptors.Descriptor current = rootDesc;
        for (int i = 0; i <= lastIndex; i++) {
            if (current == null) {
                return null;
            }
            String nodeString = nodeStrings[i];
            PbNode pbNode = new PbNode(current, nodeString, (i == lastIndex));
            current = pbNode.getMessageType();
            nodes.add(pbNode);
        }
        return nodes;
    }
parseNodePath
@param rootDesc
@param nodePath
@return
inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/decode/PbNode.java