dataSetHandle.setCachedMetaData( StructureFactory.createCachedMetaData( ) );  for ( int i = 0; i < items.length; i++ ) { ResultSetColumn rsc = StructureFactory.createResultSetColumn( ); rsc.setColumnName( ( items[i].getAlias( ) == null || items[i].getAlias( ) .trim( ) .length( ) == 0 ) ? items[i].getDataSetColumnName( ) : items[i].getAlias( ) ); rsc.setDataType( toModelDataType( items[i].getDataType( ) ) ); rsc.setPosition( new Integer( items[i].getPosition( ) ) );  dataSetHandle .getCachedMetaDataHandle( ) .getResultSet( ) .addItem( rsc ); }
context = new DataSessionContext( DataEngineContext.DIRECT_PRESENTATION, dataSetHandle.getRoot( ), null ); DataRequestSession drSession = DataRequestSession.newSession( context ); drSession.refreshMetaData( dataSetHandle );
	public static void updateColumnCache( DataSetHandle dataSetHandle ) throws SemanticException	{		DataSetItemModel[] items = DataSetManager.getCurrentInstance( ).getColumns( dataSetHandle, true);		if ( items.length > 0 )		{			dataSetHandle.setCachedMetaData( StructureFactory.createCachedMetaData( ) );			for ( int i = 0; i < items.length; i++ )			{				ResultSetColumn rsc = StructureFactory.createResultSetColumn( );				rsc.setColumnName( ( items[i].getAlias( ) == null || items[i].getAlias( )						.trim( )						.length( ) == 0 ) ? items[i].getDataSetColumnName( )						: items[i].getAlias( ) );				rsc.setDataType( toModelDataType( items[i].getDataType( ) ) );				rsc.setPosition( new Integer( items[i].getPosition( ) ) );				dataSetHandle						.getCachedMetaDataHandle( )						.getResultSet( )						.addItem( rsc );			}		}		else		{			dataSetHandle					.setCachedMetaData( null );		}	}