1 package com.atlassian.plugin.predicate;
2
3 import com.atlassian.plugin.ModuleDescriptor;
4
5
6
7
8 public class ModuleOfClassPredicate<T> implements ModuleDescriptorPredicate<T>
9 {
10 private final Class<T> moduleClass;
11
12
13
14
15 public ModuleOfClassPredicate(final Class<T> moduleClass)
16 {
17 if (moduleClass == null)
18 {
19 throw new IllegalArgumentException("Module class should not be null when constructing ModuleOfClassPredicate!");
20 }
21 this.moduleClass = moduleClass;
22 }
23
24 public boolean matches(final ModuleDescriptor<? extends T> moduleDescriptor)
25 {
26 if (moduleDescriptor != null)
27 {
28 final Class<? extends T> moduleClassInDescriptor = moduleDescriptor.getModuleClass();
29 return (moduleClassInDescriptor != null) && moduleClass.isAssignableFrom(moduleClassInDescriptor);
30 }
31
32 return false;
33 }
34 }