View Javadoc

1   package com.atlassian.plugins.rest.common.expand.resolver;
2   
3   import com.atlassian.plugins.rest.common.expand.EntityExpander;
4   
5   import static com.google.common.base.Preconditions.checkNotNull;
6   
7   import java.util.List;
8   
9   public class ChainingEntityExpanderResolver implements EntityExpanderResolver {
10      private final List<EntityExpanderResolver> resolvers;
11  
12      public ChainingEntityExpanderResolver(List<EntityExpanderResolver> resolvers) {
13          for (EntityExpanderResolver resolver : checkNotNull(resolvers)) {
14              if (resolver == null) {
15                  throw new NullPointerException("Resolver items cannot be null!");
16              }
17          }
18          this.resolvers = resolvers;
19      }
20  
21      public boolean hasExpander(Class<?> type) {
22          checkNotNull(type);
23          for (EntityExpanderResolver resolver : resolvers) {
24              if (resolver.hasExpander(type)) {
25                  return true;
26              }
27          }
28          return false;
29      }
30  
31      public <T> EntityExpander<T> getExpander(Class<? extends T> type) {
32          for (EntityExpanderResolver resolver : resolvers) {
33              final EntityExpander<T> expander = resolver.getExpander(type);
34              if (expander != null) {
35                  return expander;
36              }
37          }
38          return null;
39      }
40  }