1 package com.atlassian.plugin.predicate;
2
3 import com.atlassian.plugin.ModuleDescriptor;
4
5 import java.util.function.Predicate;
6
7 import static com.atlassian.plugin.util.Assertions.notNull;
8
9
10
11
12 public class ModuleOfClassPredicate<T> implements Predicate<ModuleDescriptor<T>> {
13 private final Class<T> moduleClass;
14
15
16
17
18 public ModuleOfClassPredicate(final Class<T> moduleClass) {
19 this.moduleClass = notNull("moduleClass", moduleClass);
20 }
21
22 public boolean test(final ModuleDescriptor<T> moduleDescriptor) {
23 if (moduleDescriptor != null) {
24 final Class<? extends T> moduleClassInDescriptor = moduleDescriptor.getModuleClass();
25 return (moduleClassInDescriptor != null) && moduleClass.isAssignableFrom(moduleClassInDescriptor);
26 }
27
28 return false;
29 }
30 }