// First visit the parent Expression
expression.getCollectionValuedPathExpression().accept(this);
// Now downcast the Expression
EntityTypeLiteral entityTypeLiteral = (EntityTypeLiteral) expression.getEntityType();
ClassDescriptor entityType = queryContext.getDescriptor(entityTypeLiteral.getEntityTypeName());
queryExpression = queryExpression.treat(entityType.getJavaClass());
}