View Javadoc

1   package com.atlassian.plugin.predicate;
2   
3   import com.atlassian.plugin.ModuleDescriptor;
4   
5   /**
6    * A {@link ModuleDescriptorPredicate} that matches modules that are is an instance of the given {@link Class}.
7    */
8   public class ModuleOfClassPredicate implements ModuleDescriptorPredicate
9   {
10      private final Class moduleClass;
11  
12      /**
13       * @throws IllegalArgumentException if the moduleClass is <code>null</code>
14       */
15      public ModuleOfClassPredicate(final Class 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 moduleDescriptor)
25      {
26          if (moduleDescriptor != null)
27          {
28              final Class moduleClassInDescriptor = moduleDescriptor.getModuleClass();
29              return moduleClassInDescriptor != null && moduleClass.isAssignableFrom(moduleClassInDescriptor);
30          }
31  
32          return false;
33      }
34  }