Class AbstractServiceBuilder
- Direct Known Subclasses:
GrpcServiceBuilder
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractServiceBuilder(Class<?> serviceClass, Supplier<?> instance) Create a new introspection modeller for a given gRPC service class. -
Method Summary
Modifier and TypeMethodDescriptionprotected Class<?>Obtain the actual annotated class.protected voidVerify that there are no non-public annotated methods.protected static Supplier<?>createInstanceSupplier(Class<?> cls) Create the service instance supplier.static StringdetermineMethodName(AnnotatedMethod method, GrpcMethod annotation) Determine the name to use from the method.protected StringdetermineServiceName(Class<?> annotatedClass) Determine the name of the gRPC service.getAllDeclaredMethods(Class<?> clazz) Obtain a list of all of the methods declared on the service class.protected MarshallerSupplierObtain theMarshallerSupplierto use.protected List<MethodHandlerSupplier>Obtain the list of method handler suppliers.protected Supplier<?>Obtain the service instance supplier.booleanDetermine whether this modeller contains an annotated service.protected Class<?>Obtain the service class.
-
Constructor Details
-
AbstractServiceBuilder
Create a new introspection modeller for a given gRPC service class.- Parameters:
serviceClass- gRPC service (handler) class.instance- the target instance to call gRPC handler methods on- Throws:
NullPointerException- if the service or instance parameters are null
-
-
Method Details
-
isAnnotatedService
public boolean isAnnotatedService()Determine whether this modeller contains an annotated service.- Returns:
trueif this modeller contains an annotated service
-
serviceClass
Obtain the service class.- Returns:
- the service class
-
annotatedServiceClass
Obtain the actual annotated class.- Returns:
- the actual annotated class
-
getMarshallerSupplier
Obtain theMarshallerSupplierto use.The
MarshallerSupplierwill be determined by theGrpcMarshallerannotation if it is present otherwise the default supplier will be returned.- Returns:
- the
MarshallerSupplierto use
-
createInstanceSupplier
Create the service instance supplier.- Parameters:
cls- the service class- Returns:
- the service instance supplier
-
checkForNonPublicMethodIssues
protected void checkForNonPublicMethodIssues()Verify that there are no non-public annotated methods. -
handlerSuppliers
Obtain the list of method handler suppliers.- Returns:
- the list of method handler suppliers
-
instanceSupplier
Obtain the service instance supplier.- Returns:
- the service instance supplier
-
getAllDeclaredMethods
Obtain a list of all of the methods declared on the service class.- Parameters:
clazz- the service class- Returns:
- a list of all of the methods declared on the service class
-
determineServiceName
Determine the name of the gRPC service.If the class is annotated with
Grpcthen the name value from the annotation is used as the service name. If the annotation has no name value or the annotation is not present the simple name of the class is used.- Parameters:
annotatedClass- the annotated class- Returns:
- the name of the gRPC service
-
determineMethodName
Determine the name to use from the method.If the method is annotated with
GrpcMethodthen use the value ofGrpcMethod.name()unlessGrpcMethod.name()returns empty string, in which case use the actual method name.If the method is annotated with an annotation that has the meta-annotation
GrpcMethodthen use the value of that annotation'sname()method. If that annotation does not have aname()method or thename()method return empty string then use the actual method name.- Parameters:
method- the annotated methodannotation- the method type annotation- Returns:
- the value to use for the method name
-