default T getArgumentByType()

in src/main/java/com/epam/digital/data/platform/restapi/core/audit/AuditProcessor.java [29:42]


  default <T> T getArgumentByType(JoinPoint joinPoint, Class<T> clazz) {
    long numberOfArgumentsOfTheSameType = Arrays.stream(joinPoint.getArgs())
        .filter(Objects::nonNull)
        .filter(x -> x.getClass().equals(clazz))
        .count();

    if (numberOfArgumentsOfTheSameType != 1) {
      throw new AuditException("The number of arguments of the given type is not equal to one");
    }
    return (T) Arrays.stream(joinPoint.getArgs())
        .filter(Objects::nonNull)
        .filter(x -> x.getClass().equals(clazz))
        .findFirst().get();
  }