String genericType = sfexp.getExpressionLeftSide().getGenericType();
String factType = sfexp.getExpressionLeftSide().getPreviousClassType();
if ( factType == null ) {
factType = sfexp.getExpressionLeftSide().getClassType();
}
InterpolationVariable var = new InterpolationVariable( sfexp.getValue(),
genericType,
factType,
sfexp.getFieldName() );
if ( BaseSingleFieldConstraint.TYPE_TEMPLATE == sfexp.getConstraintValueType() && !vars.containsKey( var ) ) {
vars.put( var,
vars.size() );
}
//Visit Connection constraints
if ( sfexp.getConnectives() != null ) {
for ( int i = 0; i < sfexp.getConnectives().length; i++ ) {
final ConnectiveConstraint cc = sfexp.getConnectives()[ i ];
InterpolationVariable ccVar = new InterpolationVariable( cc.getValue(),
genericType,
factType,
cc.getFieldName() );
if ( BaseSingleFieldConstraint.TYPE_TEMPLATE == cc.getConstraintValueType() && !vars.containsKey( ccVar ) ) {
vars.put( ccVar,