expression.appendPart(new ExpressionField(expressionPart, factType, DataType.TYPE_THIS));
} else if (isBoundParam) {
expression.appendPart(new ExpressionVariable(expressionPart, factType, factType));
isBoundParam = false;
} else {
ModelField currentField = findField(typeFields, expressionPart);
expression.appendPart(new ExpressionField(expressionPart, currentField.getType(), currentField.getClassName()));
typeFields = modelFields.get(currentField.getType());
}
}
String expressionPart = splits[splits.length - 1].trim();
ModelField currentField = findField(typeFields, expressionPart);
expression.appendPart(new ExpressionField(expressionPart, currentField.getType(), currentField.getClassName()));
return expression;
}