final String genericType = sfexp.getExpressionLeftSide().getGenericType();
String factType = sfexp.getExpressionLeftSide().getPreviousClassType();
if ( factType == null ) {
factType = sfexp.getExpressionLeftSide().getClassType();
}
final InterpolationVariable var = new InterpolationVariable( sfexp.getValue(),
genericType,
factType,
sfexp.getFieldName() );
if ( BaseSingleFieldConstraint.TYPE_TEMPLATE == sfexp.getConstraintValueType() && !vars.contains( var ) ) {
vars.add( var );
} else {
hasNonTemplateOutput = true;
}
//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.contains( ccVar ) ) {
vars.add( ccVar );