Class DelegatingAggregateAttributeLoader<T>

All Implemented Interfaces:
AggregateAttributeLoader<T>, AttributeLoader<T>, MultiRowAttributeLoader<T>, RowAttributeLoader<T>

public class DelegatingAggregateAttributeLoader<T> extends DelegatingRowAttributeLoader<T,AggregateAttributeLoader<T>> implements AggregateAttributeLoader<T>
  • Constructor Details

    • DelegatingAggregateAttributeLoader

      public DelegatingAggregateAttributeLoader(@NotNull AggregateAttributeLoader<T> loader)
  • Method Details

    • loadValue

      @Nullable public AttributeValue<T> loadValue(@NotNull List<AttributeValue<T>> childrenValues, @NotNull AggregateAttributeContext context)
      Description copied from interface: AggregateAttributeLoader

      Performs aggregate loading.

      If the value is missing or empty, the loader should return AttributeValue.undefined(). If for some reason this loader is not applicable for the given row, it should return null. (Note, however, that if multiple aggregate loaders work on the same attribute, it could be tricky and lead to unexpected results.)

      Note: children values may contain loop markers

      Specified by:
      loadValue in interface AggregateAttributeLoader<T>
      Parameters:
      childrenValues - the values of this attribute for all children rows, in the same order as the children rows
      context - loading context
      Returns:
      the calculated value