if ( ! str.equals( STRING_ROW ) )
if ( !( str.equals( STRING_ROW ) || str.equals( "dataSetRow" ) ) )
	private ColumnReferenceExpression getDirectColRefExpr( Node refNode )	{		// if it's a GETPROP or GETELEM with row on the left side, 		// and either a STRING or NUMBER on the right side, then it's 		// a direct column reference		assert( refNode.getType() == Token.GETPROP || 				refNode.getType() == Token.GETELEM );				Node rowName = refNode.getFirstChild( );		assert( rowName != null );		if ( rowName.getType( ) != Token.NAME )			return null;		String str = rowName.getString( );		assert( str != null );		if ( ! str.equals( STRING_ROW ) )			return null;		Node rowColumn = rowName.getNext( );		assert( rowColumn != null );				if( refNode.getType() == Token.GETPROP &&			rowColumn.getType() == Token.STRING )			return new ColumnReferenceExpression( rowColumn.getString() );				if( refNode.getType() == Token.GETELEM )		{			if( rowColumn.getType() == Token.NUMBER )				return new ColumnReferenceExpression( (int) rowColumn.getDouble() );			else if( rowColumn.getType() == Token.STRING )				return new ColumnReferenceExpression( rowColumn.getString() );		}						// right side is not a STRING or a NUMBER, which is what is needed for 		// a direct column reference. so it could be something 		// like row[getColumnIndex()] and that would be a complex expression		return null;	}