if ( upperCaseAlias != null ) upperCaseAlias = upperCaseAlias.toUpperCase( );
	private void initColumnsInfo( List projectedColumns )	{		m_projectedColumns = new ArrayList( );		m_projectedColumns.addAll( projectedColumns );		m_nameToIdMapping = new HashMap( );		for ( int i = 0, n = projectedColumns.size( ); i < n; i++ )		{			ResultFieldMetadata column = (ResultFieldMetadata) projectedColumns.get( i );			String upperCaseName = column.getName( );			if ( upperCaseName != null )				upperCaseName = upperCaseName.toUpperCase( );			// need to add 1 to the 0-based array index, so we can put the			// 1-based index into the name-to-id mapping that will be used			// for the rest of the interfaces in this class			Integer index = new Integer( i + 1 );			// If the name is a duplicate of an existing column name or alias,			// this entry is not put into the mapping table. This effectively			// makes this entry inaccessible by name, which is the intended			// behavior			if ( !m_nameToIdMapping.containsKey( upperCaseName ) )			{				m_nameToIdMapping.put( upperCaseName, index );			}			String upperCaseAlias = column.getAlias( );			if ( upperCaseAlias != null )				upperCaseAlias = upperCaseAlias.toUpperCase( );			if ( upperCaseAlias != null					&& upperCaseAlias.length( ) > 0					&& !m_nameToIdMapping.containsKey( upperCaseAlias ) )			{				m_nameToIdMapping.put( upperCaseAlias, index );			}		}	}