@Override
    public SofaResponse invoke(SofaRequest sofaRequest, int timeout)
            throws Exception {
        if (!useGeneric) {
            return stubCall(sofaRequest, timeout);
        }

        String streamType = methodCallType.get(sofaRequest.getMethod().getName());
        MethodDescriptor.MethodType callType = SofaProtoUtils.mapGrpcCallType(streamType);
        switch (callType) {
            case UNARY:
                return genericUnaryCall(sofaRequest, timeout);
            case BIDI_STREAMING:
                return genericBinaryStreamCall(sofaRequest, timeout);
            case CLIENT_STREAMING:
                return genericClientStreamCall(sofaRequest, timeout);
            case SERVER_STREAMING:
                return genericServerStreamCall(sofaRequest, timeout);
            default:
                throw new SofaRpcException(RpcErrorType.CLIENT_CALL_TYPE, "Unknown stream call type:" + callType);
        }
    }
Method call type (Full method name - Streaming call type)
Since gRPC does not support method overload, each method here will only represent a single call type.
remoting/remoting-triple/src/main/java/com/alipay/sofa/rpc/transport/triple/TripleClientInvoker.java