Improve `DelegateActionManager` error handling for invalid handlers
- Add validation to ensure classes annotated with `@Action` implement `ActionHandler`, throwing `IllegalArgumentException` for mismatches. - Fix minor formatting issue in `@Action` annotation for `GetGenreByIdHandler`.
This commit is contained in:
parent
a5bd6e2c39
commit
5ce8f4ca2a
|
|
@ -66,14 +66,17 @@ public class DelegateActionManager {
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private ActionHandler instantiateHandler(Class<?> clazz) throws Exception {
|
private ActionHandler instantiateHandler(Class<?> clazz) throws Exception {
|
||||||
|
if(!ActionHandler.class.isAssignableFrom(clazz)){
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
clazz.getName() + " is annotated with @Action but does not implement ActionHandler");
|
||||||
|
|
||||||
|
}
|
||||||
logger.debug("Attempting to instantiate handler: {}", clazz.getSimpleName());
|
logger.debug("Attempting to instantiate handler: {}", clazz.getSimpleName());
|
||||||
|
|
||||||
|
|
||||||
Constructor<?>[] constructors = clazz.getDeclaredConstructors();
|
Constructor<?>[] constructors = clazz.getDeclaredConstructors();
|
||||||
|
|
||||||
|
|
||||||
Constructor<?>[] constructors = clazz.getDeclaredConstructors();
|
|
||||||
|
|
||||||
// Sort constructors by parameter count (descending) to prefer DI constructors
|
// Sort constructors by parameter count (descending) to prefer DI constructors
|
||||||
java.util.Arrays.sort(constructors, (c1, c2) ->
|
java.util.Arrays.sort(constructors, (c1, c2) ->
|
||||||
Integer.compare(c2.getParameterCount(), c1.getParameterCount()));
|
Integer.compare(c2.getParameterCount(), c1.getParameterCount()));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue