Class ThreadLocalReason


  • public final class ThreadLocalReason
    extends Object
    Thread-Local audit-log reason used automatically by AuditableRestAction instances when no other reason was set.

    Note that RestAction.queue() will forward any thread-local reason set through this handle. Thus audit-log reasons done by callbacks will also use the one set from the executing thread.

    Example without closable

    
     String previousReason = ThreadLocalReason.getCurrent();
     ThreadLocalReason.setCurrent("Hello World");
     try {
         guild.ban(user, 0).queue(v -> {
             guild.unban(user).queue(); // also uses the reason "Hello World"
         });
     } finally {
         //Forwarding the reason is not async so resetting it here is fine.
         ThreadLocalReason.setCurrent(previousReason);
     }
     //This will not use the reason "Hello World" but the previous, or none if none was set previously
     guild.kick(user).queue();
     

    Example with closable

    
     try (ThreadLocalReason.Closable __ = ThreadLocalReason.closable("Hello World")) {
         guild.ban(user, 0).queue(v -> {
             guild.unban(user).queue(); // also uses the reason "Hello World"
         });
     } // automatically changes reason back
     //This will not use the reason "Hello World" but the previous, or none if none was set previously
     guild.kick(user).queue();
     
    See Also:
    AuditableRestAction.reason(String), ThreadLocal
    • Method Detail

      • setCurrent

        public static void setCurrent​(@Nullable
                                      String reason)
        Sets the current reason that should be used for AuditableRestAction.
        Parameters:
        reason - The reason to use, or null to reset
      • resetCurrent

        public static void resetCurrent()
        Resets the currently set thread-local reason, if present.
      • getCurrent

        @Nullable
        public static String getCurrent()
        The current reason that should be used for AuditableRestAction.
        Returns:
        The current thread-local reason, or null