@Override public List<DataRecord> visit(Alias alias) { alias.getTypedExpression().accept(this); FieldMetadata aliasField = new SimpleTypeFieldMetadata( explicitProjection, false, lastField.isMany(), lastField.isMandatory(), alias.getAliasName(), lastField.getType(), Collections.<String>emptyList(), Collections.<String>emptyList(), Collections.<String>emptyList(), StringUtils.EMPTY); ValueBuilder previousValueBuilder = recordProjection.remove(lastField); if (previousValueBuilder == null) { AggregateValueBuilder previous = aggregateProjection.remove(lastField); aggregateProjection.put(aliasField, previous); } else { recordProjection.put(aliasField, previousValueBuilder); } return records; }
@Override public Collection<? extends ComplexTypeMetadata> visit(Alias alias) { alias.getTypedExpression().accept(this); return closure; }