1 package com.atlassian.plugin.predicate;
2
3 import com.atlassian.plugin.ModuleDescriptor;
4 import org.apache.commons.collections.CollectionUtils;
5
6 import java.util.Arrays;
7 import java.util.Collection;
8 import java.util.Collections;
9
10 import org.apache.commons.collections.Predicate;
11
12
13
14
15 public class ModuleDescriptorOfClassPredicate implements ModuleDescriptorPredicate
16 {
17 private final Collection moduleDescriptorClasses;
18
19 public ModuleDescriptorOfClassPredicate(final Class moduleDescriptorClass)
20 {
21 moduleDescriptorClasses = Collections.singleton(moduleDescriptorClass);
22 }
23
24
25
26
27 public ModuleDescriptorOfClassPredicate(final Class[] moduleDescriptorClasses)
28 {
29 if (moduleDescriptorClasses == null)
30 {
31 throw new IllegalArgumentException("Module descriptor classes array should not be null when constructing ModuleOfClassPredicate!");
32 }
33 this.moduleDescriptorClasses = Arrays.asList(moduleDescriptorClasses);
34 }
35
36 public boolean matches(final ModuleDescriptor moduleDescriptor)
37 {
38 return moduleDescriptor != null && CollectionUtils.exists(moduleDescriptorClasses, new Predicate()
39 {
40 public boolean evaluate(Object object)
41 {
42 return object != null && ((Class) object).isInstance(moduleDescriptor);
43 }
44 });
45 }
46 }