public <T> EntityExpander<T> getExpander(Class<? extends T> type) { for (EntityExpanderResolver resolver : resolvers) { final EntityExpander<T> expander = resolver.getExpander(type); if (expander != null) { return expander; } } return null; } }
public <T> EntityExpander<T> getExpander(Class<? extends T> type) { final Method method = getConstrainMethod(checkNotNull(type)); return method != null ? (EntityExpander<T>) new ExpandConstraintEntityExpander(method) : null; }
public boolean hasExpander(Class<?> type) { checkNotNull(type); for (EntityExpanderResolver resolver : resolvers) { if (resolver.hasExpander(type)) { return true; } } return false; }
private EntityExpanderResolver getExpanders() { return new ChainingEntityExpanderResolver(Lists.<EntityExpanderResolver>newArrayList( new CollectionEntityExpanderResolver(), new ListWrapperEntityExpanderResolver(), new ExpandConstraintEntityExpanderResolver(), new SelfExpandingExpander.Resolver(), new IdentityEntityExpanderResolver() )); }
private void expandFields(Collection<Field> expandableFields, Object entity, ExpandParameter expandParameter, EntityExpanderResolver expanderResolver) { for (Field field : expandableFields) { final Expandable expandable = getExpandable(field); if (expandParameter.shouldExpand(expandable) && expanderResolver.hasExpander(field.getType())) { // we know the expander is not null, as per ExpanderResolver contract final EntityExpander<Object> entityExpander = expanderResolver.getExpander(field.getType()); final ExpandContext<Object> context = new DefaultExpandContext<Object>(getFieldValue(field, entity), expandable, expandParameter); setFieldValue(field, entity, entityExpander.expand(context, expanderResolver, this)); } } }
public boolean hasExpander(Class<?> type) { return getConstrainMethod(checkNotNull(type)) != null; }
@SuppressWarnings("unchecked") public final <T> EntityExpander<T> getExpander(T instance) { return (EntityExpander<T>) getExpander(checkNotNull(instance).getClass()); } }
public final <T> EntityExpander<T> getExpander(Class<? extends T> type) { final Expander expander = checkNotNull(type).getAnnotation(Expander.class); return expander != null ? (EntityExpander<T>) getEntityExpander(expander) : null; }
public final <T> boolean hasExpander(T instance) { return hasExpander(checkNotNull(instance).getClass()); }
private static EntityExpanderResolver getExpanders() { return new ChainingEntityExpanderResolver(Lists.<EntityExpanderResolver>newArrayList( new CollectionEntityExpanderResolver(), new ListWrapperEntityExpanderResolver(), new ExpandConstraintEntityExpanderResolver(), new SelfExpandingExpander.Resolver(), new IdentityEntityExpanderResolver() )); } }
public Collection expand(ExpandContext<Collection> context, EntityExpanderResolver expanderResolver, EntityCrawler entityCrawler) { final List list = new LinkedList(); for (Object item : context.getEntity()) { final ExpandContext<Object> itemContext = new DefaultExpandContext<Object>(item, context.getExpandable(), context.getEntityExpandParameter()); final EntityExpander<Object> entityExpander = item != null ? expanderResolver.getExpander(item.getClass()) : null; list.add(entityExpander != null ? entityExpander.expand(itemContext, expanderResolver, entityCrawler) : item); } return list; } }
final EntityExpanderResolver expanderResolver = new ChainingEntityExpanderResolver(Lists.<EntityExpanderResolver>newArrayList( new PluginEntityExpanderResolver(plugin), new CollectionEntityExpanderResolver(), new ListWrapperEntityExpanderResolver(), new ExpandConstraintEntityExpanderResolver(), new SelfExpandingExpander.Resolver(), new IdentityEntityExpanderResolver() ));
public List expand(ExpandContext<List> context, EntityExpanderResolver expanderResolver, EntityCrawler entityCrawler) { final List list = new LinkedList(); for (Object item : context.getEntity()) { final ExpandContext<Object> itemContext = new DefaultExpandContext<Object>(item, context.getExpandable(), context.getEntityExpandParameter()); final EntityExpander<Object> entityExpander = item != null ? expanderResolver.getExpander(item.getClass()) : null; list.add(entityExpander != null ? entityExpander.expand(itemContext, expanderResolver, entityCrawler) : item); } return list; } }