/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

    package com.ywt.gapi.checkup_booking;

import org.apache.dubbo.common.stream.StreamObserver;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.PathResolver;
import org.apache.dubbo.rpc.RpcException;
import org.apache.dubbo.rpc.ServerService;
import org.apache.dubbo.rpc.TriRpcStatus;
import org.apache.dubbo.rpc.model.MethodDescriptor;
import org.apache.dubbo.rpc.model.ServiceDescriptor;
import org.apache.dubbo.rpc.model.StubMethodDescriptor;
import org.apache.dubbo.rpc.model.StubServiceDescriptor;
import org.apache.dubbo.rpc.stub.BiStreamMethodHandler;
import org.apache.dubbo.rpc.stub.ServerStreamMethodHandler;
import org.apache.dubbo.rpc.stub.StubInvocationUtil;
import org.apache.dubbo.rpc.stub.StubInvoker;
import org.apache.dubbo.rpc.stub.StubMethodHandler;
import org.apache.dubbo.rpc.stub.StubSuppliers;
import org.apache.dubbo.rpc.stub.UnaryStubMethodHandler;

import com.google.protobuf.Message;

import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.concurrent.CompletableFuture;

public final class DubboCheckupBookingServiceTriple {

    public static final String SERVICE_NAME = CheckupBookingService.SERVICE_NAME;

    private static final StubServiceDescriptor serviceDescriptor = new StubServiceDescriptor(SERVICE_NAME,CheckupBookingService.class);

    static {
        org.apache.dubbo.rpc.protocol.tri.service.SchemaDescriptorRegistry.addSchemaDescriptor(SERVICE_NAME,CheckupBookingProto.getDescriptor());
        StubSuppliers.addSupplier(SERVICE_NAME, DubboCheckupBookingServiceTriple::newStub);
        StubSuppliers.addSupplier(CheckupBookingService.JAVA_SERVICE_NAME,  DubboCheckupBookingServiceTriple::newStub);
        StubSuppliers.addDescriptor(SERVICE_NAME, serviceDescriptor);
        StubSuppliers.addDescriptor(CheckupBookingService.JAVA_SERVICE_NAME, serviceDescriptor);
    }

    @SuppressWarnings("all")
    public static CheckupBookingService newStub(Invoker<?> invoker) {
        return new CheckupBookingServiceStub((Invoker<CheckupBookingService>)invoker);
    }

    /**
         * <pre>
         *  套餐等级 id
         * </pre>
         */
    private static final StubMethodDescriptor getPackageLevelListMethod = new StubMethodDescriptor("getPackageLevelList",
    com.ywt.gapi.checkup_booking.GetPackageLevelListRequest.class, com.ywt.gapi.checkup_booking.GetPackageLevelListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetPackageLevelListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetPackageLevelListResponse::parseFrom);

    private static final StubMethodDescriptor getPackageLevelListAsyncMethod = new StubMethodDescriptor("getPackageLevelList",
    com.ywt.gapi.checkup_booking.GetPackageLevelListRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetPackageLevelListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetPackageLevelListResponse::parseFrom);

    private static final StubMethodDescriptor getPackageLevelListProxyAsyncMethod = new StubMethodDescriptor("getPackageLevelListAsync",
    com.ywt.gapi.checkup_booking.GetPackageLevelListRequest.class, com.ywt.gapi.checkup_booking.GetPackageLevelListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetPackageLevelListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetPackageLevelListResponse::parseFrom);

    /**
         * <pre>
         *  套餐等级名称
         * </pre>
         */
    private static final StubMethodDescriptor getPackageListMethod = new StubMethodDescriptor("getPackageList",
    com.ywt.gapi.checkup_booking.GetPackageListRequest.class, com.ywt.gapi.checkup_booking.GetPackageListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetPackageListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetPackageListResponse::parseFrom);

    private static final StubMethodDescriptor getPackageListAsyncMethod = new StubMethodDescriptor("getPackageList",
    com.ywt.gapi.checkup_booking.GetPackageListRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetPackageListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetPackageListResponse::parseFrom);

    private static final StubMethodDescriptor getPackageListProxyAsyncMethod = new StubMethodDescriptor("getPackageListAsync",
    com.ywt.gapi.checkup_booking.GetPackageListRequest.class, com.ywt.gapi.checkup_booking.GetPackageListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetPackageListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetPackageListResponse::parseFrom);

    /**
         * <pre>
         *  科室代码
         * </pre>
         */
    private static final StubMethodDescriptor getPackageItemListMethod = new StubMethodDescriptor("getPackageItemList",
    com.ywt.gapi.checkup_booking.GetPackageItemListRequest.class, com.ywt.gapi.checkup_booking.GetPackageItemListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetPackageItemListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetPackageItemListResponse::parseFrom);

    private static final StubMethodDescriptor getPackageItemListAsyncMethod = new StubMethodDescriptor("getPackageItemList",
    com.ywt.gapi.checkup_booking.GetPackageItemListRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetPackageItemListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetPackageItemListResponse::parseFrom);

    private static final StubMethodDescriptor getPackageItemListProxyAsyncMethod = new StubMethodDescriptor("getPackageItemListAsync",
    com.ywt.gapi.checkup_booking.GetPackageItemListRequest.class, com.ywt.gapi.checkup_booking.GetPackageItemListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetPackageItemListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetPackageItemListResponse::parseFrom);

    /**
         * <pre>
         *  HIS套餐ID
         * </pre>
         */
    private static final StubMethodDescriptor getAllItemListMethod = new StubMethodDescriptor("getAllItemList",
    com.ywt.gapi.checkup_booking.GetAllItemListRequest.class, com.ywt.gapi.checkup_booking.GetAllItemListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetAllItemListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetAllItemListResponse::parseFrom);

    private static final StubMethodDescriptor getAllItemListAsyncMethod = new StubMethodDescriptor("getAllItemList",
    com.ywt.gapi.checkup_booking.GetAllItemListRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetAllItemListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetAllItemListResponse::parseFrom);

    private static final StubMethodDescriptor getAllItemListProxyAsyncMethod = new StubMethodDescriptor("getAllItemListAsync",
    com.ywt.gapi.checkup_booking.GetAllItemListRequest.class, com.ywt.gapi.checkup_booking.GetAllItemListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetAllItemListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetAllItemListResponse::parseFrom);

    /**
         * <pre>
         *  类型描述
         * </pre>
         */
    private static final StubMethodDescriptor getRegInfoListMethod = new StubMethodDescriptor("getRegInfoList",
    com.ywt.gapi.checkup_booking.GetRegInfoListRequest.class, com.ywt.gapi.checkup_booking.GetRegInfoListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetRegInfoListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetRegInfoListResponse::parseFrom);

    private static final StubMethodDescriptor getRegInfoListAsyncMethod = new StubMethodDescriptor("getRegInfoList",
    com.ywt.gapi.checkup_booking.GetRegInfoListRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetRegInfoListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetRegInfoListResponse::parseFrom);

    private static final StubMethodDescriptor getRegInfoListProxyAsyncMethod = new StubMethodDescriptor("getRegInfoListAsync",
    com.ywt.gapi.checkup_booking.GetRegInfoListRequest.class, com.ywt.gapi.checkup_booking.GetRegInfoListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetRegInfoListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetRegInfoListResponse::parseFrom);

    /**
         * <pre>
         *  类型ID
         * </pre>
         */
    private static final StubMethodDescriptor getDateRegInfoMethod = new StubMethodDescriptor("getDateRegInfo",
    com.ywt.gapi.checkup_booking.GetDateRegInfoRequest.class, com.ywt.gapi.checkup_booking.GetDateRegInfoResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetDateRegInfoRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetDateRegInfoResponse::parseFrom);

    private static final StubMethodDescriptor getDateRegInfoAsyncMethod = new StubMethodDescriptor("getDateRegInfo",
    com.ywt.gapi.checkup_booking.GetDateRegInfoRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetDateRegInfoRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetDateRegInfoResponse::parseFrom);

    private static final StubMethodDescriptor getDateRegInfoProxyAsyncMethod = new StubMethodDescriptor("getDateRegInfoAsync",
    com.ywt.gapi.checkup_booking.GetDateRegInfoRequest.class, com.ywt.gapi.checkup_booking.GetDateRegInfoResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetDateRegInfoRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetDateRegInfoResponse::parseFrom);

    /**
         * <pre>
         *  团体标志：个人、团体
         * </pre>
         */
    private static final StubMethodDescriptor saveRegRecordMethod = new StubMethodDescriptor("saveRegRecord",
    com.ywt.gapi.checkup_booking.SaveRegRecordRequest.class, com.ywt.gapi.checkup_booking.SaveRegRecordResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.SaveRegRecordRequest::parseFrom,
    com.ywt.gapi.checkup_booking.SaveRegRecordResponse::parseFrom);

    private static final StubMethodDescriptor saveRegRecordAsyncMethod = new StubMethodDescriptor("saveRegRecord",
    com.ywt.gapi.checkup_booking.SaveRegRecordRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.SaveRegRecordRequest::parseFrom,
    com.ywt.gapi.checkup_booking.SaveRegRecordResponse::parseFrom);

    private static final StubMethodDescriptor saveRegRecordProxyAsyncMethod = new StubMethodDescriptor("saveRegRecordAsync",
    com.ywt.gapi.checkup_booking.SaveRegRecordRequest.class, com.ywt.gapi.checkup_booking.SaveRegRecordResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.SaveRegRecordRequest::parseFrom,
    com.ywt.gapi.checkup_booking.SaveRegRecordResponse::parseFrom);

    /**
         * <pre>
         *  性别描述
         * </pre>
         */
    private static final StubMethodDescriptor cancelRegMethod = new StubMethodDescriptor("cancelReg",
    com.ywt.gapi.checkup_booking.CancelRegRequest.class, com.ywt.gapi.checkup_booking.CancelRegResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.CancelRegRequest::parseFrom,
    com.ywt.gapi.checkup_booking.CancelRegResponse::parseFrom);

    private static final StubMethodDescriptor cancelRegAsyncMethod = new StubMethodDescriptor("cancelReg",
    com.ywt.gapi.checkup_booking.CancelRegRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.CancelRegRequest::parseFrom,
    com.ywt.gapi.checkup_booking.CancelRegResponse::parseFrom);

    private static final StubMethodDescriptor cancelRegProxyAsyncMethod = new StubMethodDescriptor("cancelRegAsync",
    com.ywt.gapi.checkup_booking.CancelRegRequest.class, com.ywt.gapi.checkup_booking.CancelRegResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.CancelRegRequest::parseFrom,
    com.ywt.gapi.checkup_booking.CancelRegResponse::parseFrom);

    /**
         * <pre>
         *  备注
         * </pre>
         */
    private static final StubMethodDescriptor getRegRecordListMethod = new StubMethodDescriptor("getRegRecordList",
    com.ywt.gapi.checkup_booking.GetRegRecordListRequest.class, com.ywt.gapi.checkup_booking.GetRegRecordListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetRegRecordListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetRegRecordListResponse::parseFrom);

    private static final StubMethodDescriptor getRegRecordListAsyncMethod = new StubMethodDescriptor("getRegRecordList",
    com.ywt.gapi.checkup_booking.GetRegRecordListRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetRegRecordListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetRegRecordListResponse::parseFrom);

    private static final StubMethodDescriptor getRegRecordListProxyAsyncMethod = new StubMethodDescriptor("getRegRecordListAsync",
    com.ywt.gapi.checkup_booking.GetRegRecordListRequest.class, com.ywt.gapi.checkup_booking.GetRegRecordListResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetRegRecordListRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetRegRecordListResponse::parseFrom);

    /**
         * <pre>
         *  科室ID
         * </pre>
         */
    private static final StubMethodDescriptor getUncheckedRecordMethod = new StubMethodDescriptor("getUncheckedRecord",
    com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest.class, com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse::parseFrom);

    private static final StubMethodDescriptor getUncheckedRecordAsyncMethod = new StubMethodDescriptor("getUncheckedRecord",
    com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse::parseFrom);

    private static final StubMethodDescriptor getUncheckedRecordProxyAsyncMethod = new StubMethodDescriptor("getUncheckedRecordAsync",
    com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest.class, com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest::parseFrom,
    com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse::parseFrom);





    public static class CheckupBookingServiceStub implements CheckupBookingService{
        private final Invoker<CheckupBookingService> invoker;

        public CheckupBookingServiceStub(Invoker<CheckupBookingService> invoker) {
            this.invoker = invoker;
        }

            /**
         * <pre>
         *  套餐等级 id
         * </pre>
         */
        @Override
        public com.ywt.gapi.checkup_booking.GetPackageLevelListResponse getPackageLevelList(com.ywt.gapi.checkup_booking.GetPackageLevelListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getPackageLevelListMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.checkup_booking.GetPackageLevelListResponse> getPackageLevelListAsync(com.ywt.gapi.checkup_booking.GetPackageLevelListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getPackageLevelListAsyncMethod, request);
        }

            /**
         * <pre>
         *  套餐等级 id
         * </pre>
         */
        @Override
        public void getPackageLevelList(com.ywt.gapi.checkup_booking.GetPackageLevelListRequest request, StreamObserver<com.ywt.gapi.checkup_booking.GetPackageLevelListResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getPackageLevelListMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  套餐等级名称
         * </pre>
         */
        @Override
        public com.ywt.gapi.checkup_booking.GetPackageListResponse getPackageList(com.ywt.gapi.checkup_booking.GetPackageListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getPackageListMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.checkup_booking.GetPackageListResponse> getPackageListAsync(com.ywt.gapi.checkup_booking.GetPackageListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getPackageListAsyncMethod, request);
        }

            /**
         * <pre>
         *  套餐等级名称
         * </pre>
         */
        @Override
        public void getPackageList(com.ywt.gapi.checkup_booking.GetPackageListRequest request, StreamObserver<com.ywt.gapi.checkup_booking.GetPackageListResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getPackageListMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  科室代码
         * </pre>
         */
        @Override
        public com.ywt.gapi.checkup_booking.GetPackageItemListResponse getPackageItemList(com.ywt.gapi.checkup_booking.GetPackageItemListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getPackageItemListMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.checkup_booking.GetPackageItemListResponse> getPackageItemListAsync(com.ywt.gapi.checkup_booking.GetPackageItemListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getPackageItemListAsyncMethod, request);
        }

            /**
         * <pre>
         *  科室代码
         * </pre>
         */
        @Override
        public void getPackageItemList(com.ywt.gapi.checkup_booking.GetPackageItemListRequest request, StreamObserver<com.ywt.gapi.checkup_booking.GetPackageItemListResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getPackageItemListMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  HIS套餐ID
         * </pre>
         */
        @Override
        public com.ywt.gapi.checkup_booking.GetAllItemListResponse getAllItemList(com.ywt.gapi.checkup_booking.GetAllItemListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getAllItemListMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.checkup_booking.GetAllItemListResponse> getAllItemListAsync(com.ywt.gapi.checkup_booking.GetAllItemListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getAllItemListAsyncMethod, request);
        }

            /**
         * <pre>
         *  HIS套餐ID
         * </pre>
         */
        @Override
        public void getAllItemList(com.ywt.gapi.checkup_booking.GetAllItemListRequest request, StreamObserver<com.ywt.gapi.checkup_booking.GetAllItemListResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getAllItemListMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  类型描述
         * </pre>
         */
        @Override
        public com.ywt.gapi.checkup_booking.GetRegInfoListResponse getRegInfoList(com.ywt.gapi.checkup_booking.GetRegInfoListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getRegInfoListMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.checkup_booking.GetRegInfoListResponse> getRegInfoListAsync(com.ywt.gapi.checkup_booking.GetRegInfoListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getRegInfoListAsyncMethod, request);
        }

            /**
         * <pre>
         *  类型描述
         * </pre>
         */
        @Override
        public void getRegInfoList(com.ywt.gapi.checkup_booking.GetRegInfoListRequest request, StreamObserver<com.ywt.gapi.checkup_booking.GetRegInfoListResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getRegInfoListMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  类型ID
         * </pre>
         */
        @Override
        public com.ywt.gapi.checkup_booking.GetDateRegInfoResponse getDateRegInfo(com.ywt.gapi.checkup_booking.GetDateRegInfoRequest request){
            return StubInvocationUtil.unaryCall(invoker, getDateRegInfoMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.checkup_booking.GetDateRegInfoResponse> getDateRegInfoAsync(com.ywt.gapi.checkup_booking.GetDateRegInfoRequest request){
            return StubInvocationUtil.unaryCall(invoker, getDateRegInfoAsyncMethod, request);
        }

            /**
         * <pre>
         *  类型ID
         * </pre>
         */
        @Override
        public void getDateRegInfo(com.ywt.gapi.checkup_booking.GetDateRegInfoRequest request, StreamObserver<com.ywt.gapi.checkup_booking.GetDateRegInfoResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getDateRegInfoMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  团体标志：个人、团体
         * </pre>
         */
        @Override
        public com.ywt.gapi.checkup_booking.SaveRegRecordResponse saveRegRecord(com.ywt.gapi.checkup_booking.SaveRegRecordRequest request){
            return StubInvocationUtil.unaryCall(invoker, saveRegRecordMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.checkup_booking.SaveRegRecordResponse> saveRegRecordAsync(com.ywt.gapi.checkup_booking.SaveRegRecordRequest request){
            return StubInvocationUtil.unaryCall(invoker, saveRegRecordAsyncMethod, request);
        }

            /**
         * <pre>
         *  团体标志：个人、团体
         * </pre>
         */
        @Override
        public void saveRegRecord(com.ywt.gapi.checkup_booking.SaveRegRecordRequest request, StreamObserver<com.ywt.gapi.checkup_booking.SaveRegRecordResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, saveRegRecordMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  性别描述
         * </pre>
         */
        @Override
        public com.ywt.gapi.checkup_booking.CancelRegResponse cancelReg(com.ywt.gapi.checkup_booking.CancelRegRequest request){
            return StubInvocationUtil.unaryCall(invoker, cancelRegMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.checkup_booking.CancelRegResponse> cancelRegAsync(com.ywt.gapi.checkup_booking.CancelRegRequest request){
            return StubInvocationUtil.unaryCall(invoker, cancelRegAsyncMethod, request);
        }

            /**
         * <pre>
         *  性别描述
         * </pre>
         */
        @Override
        public void cancelReg(com.ywt.gapi.checkup_booking.CancelRegRequest request, StreamObserver<com.ywt.gapi.checkup_booking.CancelRegResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, cancelRegMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  备注
         * </pre>
         */
        @Override
        public com.ywt.gapi.checkup_booking.GetRegRecordListResponse getRegRecordList(com.ywt.gapi.checkup_booking.GetRegRecordListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getRegRecordListMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.checkup_booking.GetRegRecordListResponse> getRegRecordListAsync(com.ywt.gapi.checkup_booking.GetRegRecordListRequest request){
            return StubInvocationUtil.unaryCall(invoker, getRegRecordListAsyncMethod, request);
        }

            /**
         * <pre>
         *  备注
         * </pre>
         */
        @Override
        public void getRegRecordList(com.ywt.gapi.checkup_booking.GetRegRecordListRequest request, StreamObserver<com.ywt.gapi.checkup_booking.GetRegRecordListResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getRegRecordListMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  科室ID
         * </pre>
         */
        @Override
        public com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse getUncheckedRecord(com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest request){
            return StubInvocationUtil.unaryCall(invoker, getUncheckedRecordMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse> getUncheckedRecordAsync(com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest request){
            return StubInvocationUtil.unaryCall(invoker, getUncheckedRecordAsyncMethod, request);
        }

            /**
         * <pre>
         *  科室ID
         * </pre>
         */
        @Override
        public void getUncheckedRecord(com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest request, StreamObserver<com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getUncheckedRecordMethod , request, responseObserver);
        }



    }

    public static abstract class CheckupBookingServiceImplBase implements CheckupBookingService, ServerService<CheckupBookingService> {

        private <T, R> BiConsumer<T, StreamObserver<R>> syncToAsync(java.util.function.Function<T, R> syncFun) {
            return new BiConsumer<T, StreamObserver<R>>() {
                @Override
                public void accept(T t, StreamObserver<R> observer) {
                    try {
                        R ret = syncFun.apply(t);
                        observer.onNext(ret);
                        observer.onCompleted();
                    } catch (Throwable e) {
                        observer.onError(e);
                    }
                }
            };
        }

        @Override
        public final Invoker<CheckupBookingService> getInvoker(URL url) {
            PathResolver pathResolver = url.getOrDefaultFrameworkModel()
            .getExtensionLoader(PathResolver.class)
            .getDefaultExtension();
            Map<String,StubMethodHandler<?, ?>> handlers = new HashMap<>();

            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getPackageLevelList" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getPackageLevelListAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getPackageList" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getPackageListAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getPackageItemList" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getPackageItemListAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getAllItemList" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getAllItemListAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getRegInfoList" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getRegInfoListAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getDateRegInfo" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getDateRegInfoAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/saveRegRecord" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/saveRegRecordAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/cancelReg" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/cancelRegAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getRegRecordList" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getRegRecordListAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getUncheckedRecord" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getUncheckedRecordAsync" );

            BiConsumer<com.ywt.gapi.checkup_booking.GetPackageLevelListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetPackageLevelListResponse>> getPackageLevelListFunc = this::getPackageLevelList;
            handlers.put(getPackageLevelListMethod.getMethodName(), new UnaryStubMethodHandler<>(getPackageLevelListFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetPackageLevelListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetPackageLevelListResponse>> getPackageLevelListAsyncFunc = syncToAsync(this::getPackageLevelList);
            handlers.put(getPackageLevelListProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getPackageLevelListAsyncFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetPackageListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetPackageListResponse>> getPackageListFunc = this::getPackageList;
            handlers.put(getPackageListMethod.getMethodName(), new UnaryStubMethodHandler<>(getPackageListFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetPackageListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetPackageListResponse>> getPackageListAsyncFunc = syncToAsync(this::getPackageList);
            handlers.put(getPackageListProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getPackageListAsyncFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetPackageItemListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetPackageItemListResponse>> getPackageItemListFunc = this::getPackageItemList;
            handlers.put(getPackageItemListMethod.getMethodName(), new UnaryStubMethodHandler<>(getPackageItemListFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetPackageItemListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetPackageItemListResponse>> getPackageItemListAsyncFunc = syncToAsync(this::getPackageItemList);
            handlers.put(getPackageItemListProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getPackageItemListAsyncFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetAllItemListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetAllItemListResponse>> getAllItemListFunc = this::getAllItemList;
            handlers.put(getAllItemListMethod.getMethodName(), new UnaryStubMethodHandler<>(getAllItemListFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetAllItemListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetAllItemListResponse>> getAllItemListAsyncFunc = syncToAsync(this::getAllItemList);
            handlers.put(getAllItemListProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getAllItemListAsyncFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetRegInfoListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetRegInfoListResponse>> getRegInfoListFunc = this::getRegInfoList;
            handlers.put(getRegInfoListMethod.getMethodName(), new UnaryStubMethodHandler<>(getRegInfoListFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetRegInfoListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetRegInfoListResponse>> getRegInfoListAsyncFunc = syncToAsync(this::getRegInfoList);
            handlers.put(getRegInfoListProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getRegInfoListAsyncFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetDateRegInfoRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetDateRegInfoResponse>> getDateRegInfoFunc = this::getDateRegInfo;
            handlers.put(getDateRegInfoMethod.getMethodName(), new UnaryStubMethodHandler<>(getDateRegInfoFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetDateRegInfoRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetDateRegInfoResponse>> getDateRegInfoAsyncFunc = syncToAsync(this::getDateRegInfo);
            handlers.put(getDateRegInfoProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getDateRegInfoAsyncFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.SaveRegRecordRequest, StreamObserver<com.ywt.gapi.checkup_booking.SaveRegRecordResponse>> saveRegRecordFunc = this::saveRegRecord;
            handlers.put(saveRegRecordMethod.getMethodName(), new UnaryStubMethodHandler<>(saveRegRecordFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.SaveRegRecordRequest, StreamObserver<com.ywt.gapi.checkup_booking.SaveRegRecordResponse>> saveRegRecordAsyncFunc = syncToAsync(this::saveRegRecord);
            handlers.put(saveRegRecordProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(saveRegRecordAsyncFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.CancelRegRequest, StreamObserver<com.ywt.gapi.checkup_booking.CancelRegResponse>> cancelRegFunc = this::cancelReg;
            handlers.put(cancelRegMethod.getMethodName(), new UnaryStubMethodHandler<>(cancelRegFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.CancelRegRequest, StreamObserver<com.ywt.gapi.checkup_booking.CancelRegResponse>> cancelRegAsyncFunc = syncToAsync(this::cancelReg);
            handlers.put(cancelRegProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(cancelRegAsyncFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetRegRecordListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetRegRecordListResponse>> getRegRecordListFunc = this::getRegRecordList;
            handlers.put(getRegRecordListMethod.getMethodName(), new UnaryStubMethodHandler<>(getRegRecordListFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetRegRecordListRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetRegRecordListResponse>> getRegRecordListAsyncFunc = syncToAsync(this::getRegRecordList);
            handlers.put(getRegRecordListProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getRegRecordListAsyncFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse>> getUncheckedRecordFunc = this::getUncheckedRecord;
            handlers.put(getUncheckedRecordMethod.getMethodName(), new UnaryStubMethodHandler<>(getUncheckedRecordFunc));
            BiConsumer<com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest, StreamObserver<com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse>> getUncheckedRecordAsyncFunc = syncToAsync(this::getUncheckedRecord);
            handlers.put(getUncheckedRecordProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getUncheckedRecordAsyncFunc));




            return new StubInvoker<>(this, url, CheckupBookingService.class, handlers);
        }


        @Override
        public com.ywt.gapi.checkup_booking.GetPackageLevelListResponse getPackageLevelList(com.ywt.gapi.checkup_booking.GetPackageLevelListRequest request){
            throw unimplementedMethodException(getPackageLevelListMethod);
        }

        @Override
        public com.ywt.gapi.checkup_booking.GetPackageListResponse getPackageList(com.ywt.gapi.checkup_booking.GetPackageListRequest request){
            throw unimplementedMethodException(getPackageListMethod);
        }

        @Override
        public com.ywt.gapi.checkup_booking.GetPackageItemListResponse getPackageItemList(com.ywt.gapi.checkup_booking.GetPackageItemListRequest request){
            throw unimplementedMethodException(getPackageItemListMethod);
        }

        @Override
        public com.ywt.gapi.checkup_booking.GetAllItemListResponse getAllItemList(com.ywt.gapi.checkup_booking.GetAllItemListRequest request){
            throw unimplementedMethodException(getAllItemListMethod);
        }

        @Override
        public com.ywt.gapi.checkup_booking.GetRegInfoListResponse getRegInfoList(com.ywt.gapi.checkup_booking.GetRegInfoListRequest request){
            throw unimplementedMethodException(getRegInfoListMethod);
        }

        @Override
        public com.ywt.gapi.checkup_booking.GetDateRegInfoResponse getDateRegInfo(com.ywt.gapi.checkup_booking.GetDateRegInfoRequest request){
            throw unimplementedMethodException(getDateRegInfoMethod);
        }

        @Override
        public com.ywt.gapi.checkup_booking.SaveRegRecordResponse saveRegRecord(com.ywt.gapi.checkup_booking.SaveRegRecordRequest request){
            throw unimplementedMethodException(saveRegRecordMethod);
        }

        @Override
        public com.ywt.gapi.checkup_booking.CancelRegResponse cancelReg(com.ywt.gapi.checkup_booking.CancelRegRequest request){
            throw unimplementedMethodException(cancelRegMethod);
        }

        @Override
        public com.ywt.gapi.checkup_booking.GetRegRecordListResponse getRegRecordList(com.ywt.gapi.checkup_booking.GetRegRecordListRequest request){
            throw unimplementedMethodException(getRegRecordListMethod);
        }

        @Override
        public com.ywt.gapi.checkup_booking.GetUncheckedRecordResponse getUncheckedRecord(com.ywt.gapi.checkup_booking.GetUncheckedRecordRequest request){
            throw unimplementedMethodException(getUncheckedRecordMethod);
        }





        @Override
        public final ServiceDescriptor getServiceDescriptor() {
            return serviceDescriptor;
        }
        private RpcException unimplementedMethodException(StubMethodDescriptor methodDescriptor) {
            return TriRpcStatus.UNIMPLEMENTED.withDescription(String.format("Method %s is unimplemented",
                "/" + serviceDescriptor.getInterfaceName() + "/" + methodDescriptor.getMethodName())).asException();
        }
    }

}
