INNER CODE UNIT · Java
serviceInterfaces
scalecube/scalecube-services · services-api/src/main/java/io/scalecube/services/Reflect.java:254
public static Stream<Class<?>> serviceInterfaces(Object serviceObject) {
Class<?> current = serviceObject.getClass();
Set<Class<?>> interfaces = new HashSet<>();
while (current != Object.class) {
interfaces.addAll(Arrays.asList(current.getInterfaces()));
current = current.getSuperclass();
}
return interfaces.stream()
.filter(interfaceClass -> interfaceClass.isAnnotationPresent(Service.class));
}
/**
* Extracting method name, checks for annotation {@link ServiceMethod}.
*
* @param method method
* @return method name
*/
public static String methodName(Method method) {