Skip to content

Commit 2a6738c

Browse files
committed
fix style
1 parent 1640052 commit 2a6738c

File tree

3 files changed

+32
-6
lines changed

3 files changed

+32
-6
lines changed

cloud-core/src/main/java/org/incendo/cloud/CommandManager.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public abstract class CommandManager<C> implements Stateful<RegistrationState>,
112112
private final Set<CloudCapability> capabilities = new HashSet<>();
113113
private final ExceptionController<C> exceptionController = new ExceptionController<>();
114114
private final CommandExecutor<C> commandExecutor;
115-
final ThreadLocalPermissionCache<C> threadLocalPermissionCache = new ThreadLocalPermissionCache<>(this.settings);
115+
private final ThreadLocalPermissionCache<C> threadLocalPermissionCache = new ThreadLocalPermissionCache<>(this.settings);
116116

117117
private CaptionFormatter<C, String> captionVariableReplacementHandler = CaptionFormatter.placeholderReplacing();
118118
private CommandSyntaxFormatter<C> commandSyntaxFormatter = new StandardCommandSyntaxFormatter<>(this);
@@ -178,6 +178,10 @@ protected CommandManager(
178178
return this.commandExecutor;
179179
}
180180

181+
final @NonNull ThreadLocalPermissionCache<C> threadLocalPermissionCache() {
182+
return this.threadLocalPermissionCache;
183+
}
184+
181185
/**
182186
* Returns the suggestion factory.
183187
*
@@ -392,26 +396,26 @@ public boolean hasCapability(final @NonNull CloudCapability capability) {
392396
final @NonNull C sender,
393397
final @NonNull Permission permission
394398
) {
395-
return this.threadLocalPermissionCache.withPermissionCache(() -> this.testPermission_(sender, permission));
399+
return this.threadLocalPermissionCache.withPermissionCache(() -> this.testPermissionRaw(sender, permission));
396400
}
397401

398402
@SuppressWarnings("unchecked")
399-
private @NonNull PermissionResult testPermission_(final @NonNull C sender, final @NonNull Permission permission) {
403+
private @NonNull PermissionResult testPermissionRaw(final @NonNull C sender, final @NonNull Permission permission) {
400404
if (permission instanceof PredicatePermission) {
401405
return this.threadLocalPermissionCache.testPermissionCaching(sender, (PredicatePermission<C>) permission, pair -> {
402406
return pair.second().testPermission(pair.first());
403407
});
404408
} else if (permission instanceof OrPermission) {
405409
for (final Permission innerPermission : permission.permissions()) {
406-
final PermissionResult result = this.testPermission_(sender, innerPermission);
410+
final PermissionResult result = this.testPermissionRaw(sender, innerPermission);
407411
if (result.allowed()) {
408412
return result;
409413
}
410414
}
411415
return PermissionResult.denied(permission);
412416
} else if (permission instanceof AndPermission) {
413417
for (final Permission innerPermission : permission.permissions()) {
414-
final PermissionResult result = this.testPermission_(sender, innerPermission);
418+
final PermissionResult result = this.testPermissionRaw(sender, innerPermission);
415419
if (!result.allowed()) {
416420
return result;
417421
}

cloud-core/src/main/java/org/incendo/cloud/CommandTree.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ private Exception noPermissionOrSyntax(
357357
);
358358
}
359359

360-
return this.commandManager.threadLocalPermissionCache.withPermissionCache(() -> {
360+
return this.commandManager.threadLocalPermissionCache().withPermissionCache(() -> {
361361
if (this.childPermitted(root, sender)) {
362362
return new InvalidSyntaxException(
363363
this.commandManager.commandSyntaxFormatter().apply(sender, (List) this.getComponentChain(root), root),

cloud-core/src/main/java/org/incendo/cloud/internal/ThreadLocalPermissionCache.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,27 @@
3838

3939
@API(status = API.Status.INTERNAL)
4040
public final class ThreadLocalPermissionCache<C> {
41+
4142
private final ThreadLocal<Pair<Map<Pair<C, Permission>, PermissionResult>, AtomicInteger>> threadLocalPermissionCache =
4243
ThreadLocal.withInitial(() -> Pair.of(new HashMap<>(), new AtomicInteger(0)));
4344
private final Configurable<ManagerSetting> settings;
4445

46+
/**
47+
* Create a new cache.
48+
*
49+
* @param settings settings
50+
*/
4551
public ThreadLocalPermissionCache(final Configurable<ManagerSetting> settings) {
4652
this.settings = settings;
4753
}
4854

55+
/**
56+
* Perform an action in a cached scope.
57+
*
58+
* @param action action
59+
* @param <T> result type
60+
* @return result
61+
*/
4962
public <T> T withPermissionCache(final Supplier<T> action) {
5063
final boolean cache = this.settings.get(ManagerSetting.REDUCE_REDUNDANT_PERMISSION_CHECKS);
5164
try {
@@ -67,6 +80,15 @@ public <T> T withPermissionCache(final Supplier<T> action) {
6780
}
6881
}
6982

83+
/**
84+
* Test permission caching.
85+
*
86+
* @param sender sender
87+
* @param permission permission
88+
* @param tester tester
89+
* @param <T> permission type
90+
* @return permission result
91+
*/
7092
@SuppressWarnings({"rawtypes", "unchecked"})
7193
public @NonNull <T> PermissionResult testPermissionCaching(
7294
final @NonNull C sender,

0 commit comments

Comments
 (0)