// Entity type name
if (typeExpression) {
typeExpression = false;
ClassDescriptor descriptor = queryContext.getDescriptor(expression.getText());
type[0] = descriptor.getJavaClass();
queryExpression = new ConstantExpression(type[0], queryContext.getBaseExpression());
}
else {
String variableName = expression.getVariableName();
// A result variable is parsed as an identification variable
// TODO: Do we still need to do this since the following does:
// queryContext.findQueryExpression(variableName)
if (queryContext.isResultVariable(variableName)) {
queryExpression = queryContext.getQueryExpression(variableName);
}
else {
// Check if it's an entity type name
if (!expression.isVirtual()) {
ClassDescriptor descriptor = queryContext.getDescriptor(expression.getText());
// Entity type name
if (descriptor != null) {
type[0] = descriptor.getJavaClass();
queryExpression = new ConstantExpression(type[0], queryContext.getBaseExpression());
return;
}
}
// Identification variable, it's important to use findQueryExpression() and not