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