Class UnaryMethodHandlerSupplier.AbstractUnaryHandler<ReqT,RespT>
java.lang.Object
io.helidon.microprofile.grpc.core.UnaryMethodHandlerSupplier.AbstractUnaryHandler<ReqT,RespT>
- Type Parameters:
ReqT- the request typeRespT- the response type
- All Implemented Interfaces:
io.grpc.stub.ServerCalls.BidiStreamingMethod<ReqT,,RespT> io.grpc.stub.ServerCalls.ClientStreamingMethod<ReqT,,RespT> io.grpc.stub.ServerCalls.ServerStreamingMethod<ReqT,,RespT> io.grpc.stub.ServerCalls.UnaryMethod<ReqT,,RespT> MethodHandler<ReqT,RespT>
- Direct Known Subclasses:
UnaryMethodHandlerSupplier.FutureResponse,UnaryMethodHandlerSupplier.FutureResponseNoRequest,UnaryMethodHandlerSupplier.NoRequestNoResponse,UnaryMethodHandlerSupplier.RequestNoResponse,UnaryMethodHandlerSupplier.RequestResponse,UnaryMethodHandlerSupplier.ResponseOnly,UnaryMethodHandlerSupplier.Unary,UnaryMethodHandlerSupplier.UnaryFuture,UnaryMethodHandlerSupplier.UnaryFutureNoRequest,UnaryMethodHandlerSupplier.UnaryNoRequest
- Enclosing class:
UnaryMethodHandlerSupplier
public abstract static class UnaryMethodHandlerSupplier.AbstractUnaryHandler<ReqT,RespT>
extends Object
A base class for unary method handlers.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.helidon.grpc.core.MethodHandler
MethodHandler.BidirectionalClient, MethodHandler.ClientStreaming, MethodHandler.ServerStreamingClient, MethodHandler.UnaryClient -
Method Summary
Modifier and TypeMethodDescriptionprotected Class<?> getGenericResponseType(Type type) Obtain the generic type of aTypeClass<?> Obtain the request type.Class<?> Obtain the response type.protected VoidhandleFuture(RespT response, Throwable thrown, io.grpc.stub.StreamObserver<RespT> observer) Complete aStreamObserver.io.grpc.stub.StreamObserver<ReqT> protected io.grpc.stub.StreamObserver<ReqT> Invoke the actual client streaming or bi-directional gRPC method handler.protected abstract voidInvoke the actual unary or server streaming gRPC method handler.voidObtain the name of the underlying Java method that this handler maps to.protected StringObtain the gRPC method name.protected voidsetRequestType(Class<?> requestType) Set the request type to use if noGrpc.RequestTypeannotation is present on the annotated method.protected voidsetResponseType(Class<?> responseType) Set the response type to use if noGrpc.ResponseTypeannotation is present on the annotated method.final io.grpc.MethodDescriptor.MethodTypetype()Obtain thegRPC method tyoethat thisMethodHandlerhandles.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.helidon.grpc.core.MethodHandler
bidirectional, clientOnly, clientStreaming, serverStreaming, unary
-
Method Details
-
invoke
protected io.grpc.stub.StreamObserver<ReqT> invoke(Method method, Object instance, io.grpc.stub.StreamObserver<RespT> observer) Invoke the actual client streaming or bi-directional gRPC method handler.- Parameters:
method- theMethodto invokeinstance- the service instance to invoke the method onobserver- the method response observer- Returns:
- the
StreamObserverto receive requests from the client
-
type
public final io.grpc.MethodDescriptor.MethodType type()Description copied from interface:MethodHandlerObtain thegRPC method tyoethat thisMethodHandlerhandles.- Specified by:
typein interfaceMethodHandler<ReqT,RespT> - Returns:
- the
gRPC method typethat thisMethodHandlerhandles
-
invoke
- Specified by:
invokein interfaceMethodHandler<ReqT,RespT> - Specified by:
invokein interfaceio.grpc.stub.ServerCalls.ServerStreamingMethod<ReqT,RespT> - Specified by:
invokein interfaceio.grpc.stub.ServerCalls.UnaryMethod<ReqT,RespT>
-
invoke
protected abstract void invoke(Method method, Object instance, ReqT request, io.grpc.stub.StreamObserver<RespT> observer) throws InvocationTargetException, IllegalAccessException Invoke the actual unary or server streaming gRPC method handler.- Parameters:
method- theMethodto invokeinstance- the service instance to invoke the method onrequest- the method requestobserver- the method response observer- Throws:
InvocationTargetException- if an error occurs invoking the methodIllegalAccessException- if the method cannot be accessed
-
invoke
- Specified by:
invokein interfaceMethodHandler<ReqT,RespT> - Specified by:
invokein interfaceio.grpc.stub.ServerCalls.BidiStreamingMethod<ReqT,RespT> - Specified by:
invokein interfaceio.grpc.stub.ServerCalls.ClientStreamingMethod<ReqT,RespT>
-
getRequestType
Description copied from interface:MethodHandlerObtain the request type.- Specified by:
getRequestTypein interfaceMethodHandler<ReqT,RespT> - Returns:
- the request type
-
setRequestType
Set the request type to use if noGrpc.RequestTypeannotation is present on the annotated method.- Parameters:
requestType- the request type
-
getResponseType
Description copied from interface:MethodHandlerObtain the response type.- Specified by:
getResponseTypein interfaceMethodHandler<ReqT,RespT> - Returns:
- the response type
-
javaMethodName
Description copied from interface:MethodHandlerObtain the name of the underlying Java method that this handler maps to.- Specified by:
javaMethodNamein interfaceMethodHandler<ReqT,RespT> - Returns:
- the name of the underlying Java method that this handler maps to
-
setResponseType
Set the response type to use if noGrpc.ResponseTypeannotation is present on the annotated method.- Parameters:
responseType- the response type
-
methodName
Obtain the gRPC method name.- Returns:
- the gRPC method name
-
handleFuture
protected Void handleFuture(RespT response, Throwable thrown, io.grpc.stub.StreamObserver<RespT> observer) Complete aStreamObserver.- Parameters:
response- the response valuethrown- an error that may have occurredobserver- theStreamObserverto complete- Returns:
- always returns
Void(i.e.null)
-
getGenericResponseType
Obtain the generic type of aTypeTypically used to obtain the generic type of a
StreamObserverbut could be used to obtain the generic type of other classes.If the type passed in is a
Classthen it has no generic component so the Object Class will be returned. Typically this would be due to a declaration such asStreamObserver observer
instead of a generic declaration such asStreamObserver<String> observer
.- Parameters:
type- the type to obtain the generic type from- Returns:
- the generic type of a
Type
-