View Javadoc

1   package com.atlassian.plugins.rest.common.expand;
2   
3   import com.atlassian.plugins.rest.common.expand.resolver.EntityExpanderResolver;
4   
5   public abstract class AbstractRecursiveEntityExpander<T> implements EntityExpander<T> {
6       public final T expand(ExpandContext<T> context, EntityExpanderResolver expanderResolver, EntityCrawler entityCrawler) {
7           final T expandedEntity = expandInternal(context.getEntity());
8           if (!context.getEntityExpandParameter().isEmpty()) {
9               entityCrawler.crawl(expandedEntity, context.getEntityExpandParameter().getExpandParameter(context.getExpandable()), expanderResolver);
10          }
11          return expandedEntity;
12      }
13  
14      protected abstract T expandInternal(T entity);
15  }