private Slot<ColumnView> createNullaryFunctionCall(final FunctionCallNode call) { assert call.getArguments().isEmpty(); final Slot<Integer> rowCount = batch.addRowCount(filterLevel, rootFormClass); return new Slot<ColumnView>() { @Override public ColumnView get() { return ((ColumnFunction) call.getFunction()).columnApply(rowCount.get(), Collections.<ColumnView>emptyList()); } }; }
/** * Adds a request for a "constant" column to the query batch. We don't actually need any data from * the form, but we do need the row count of the base table. * @param rootFormClass * @param value * @return */ public Slot<ColumnView> addConstantColumn(FilterLevel filterLevel, FormClass rootFormClass, FieldValue value) { return new ConstantColumnBuilder(addRowCount(filterLevel, rootFormClass), value); }
/** * Adds a query to the batch for an empty column. It may still be required to hit the data store * to find the number of rows. */ public Slot<ColumnView> addEmptyColumn(FilterLevel filterLevel, FormClass formClass) { Slot<Integer> rowCount = addRowCount(filterLevel, formClass); return new ConstantColumnBuilder(rowCount, null); }
public Slot<Integer> addRowCount(FilterLevel filterLevel, FormClass formClass) { return addRowCount(filterLevel, formClass.getId()); }
/** * Adds a request for a "constant" String column to the query batch. We don't actually need any data from * the form, but we do need the row count of the base table. * @param rootFormClass * @param value * @return */ public Slot<ColumnView> addConstantColumn(FilterLevel filterLevel, FormClass rootFormClass, String value) { return new ConstantColumnBuilder(addRowCount(filterLevel, rootFormClass), TextValue.valueOf(value)); }
return new MemoizedSlot<>(batch.addRowCount(FilterLevel.PERMISSIONS, tree.getRootFormId()), new Function<Integer, ColumnSet>() { @Override public ColumnSet apply(Integer rowCount) {