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