if ( writeCount != size ) throw new DataException( ResourceConstants.RESULT_CLASS_SAVE_ERROR );
	public void doSave( OutputStream outputStream, Map requestColumnMap )			throws DataException	{		assert outputStream != null;				DataOutputStream dos = new DataOutputStream( outputStream );		Set resultSetNameSet = ResultSetUtil.getRsColumnRequestMap( requestColumnMap );		int size = resultSetNameSet.size( );		try		{			IOUtil.writeInt( outputStream, size );			for ( int i = 0; i < m_fieldCount; i++ )			{				ResultFieldMetadata column = projectedCols[i];				if ( resultSetNameSet.contains( column.getName( ) ) )				{					IOUtil.writeInt( dos, column.getDriverPosition( ) );					IOUtil.writeString( dos, column.getName( ) );					IOUtil.writeString( dos, column.getLabel( ) );					IOUtil.writeString( dos, column.getAlias( ) );					IOUtil.writeString( dos, column.getDataType( ).getName( ) );					IOUtil.writeString( dos, column.getNativeTypeName( ) );					IOUtil.writeBool( dos, column.isCustom( ) );					if ( column.getDriverProvidedDataType( ) == null )						IOUtil.writeString( dos, null );					else						IOUtil.writeString( dos,								column.getDriverProvidedDataType( ).getName( ) );				}			}						dos.close( );		}		catch ( IOException e )		{			throw new DataException( ResourceConstants.RD_SAVE_ERROR,					e,					"Result Class" );		}	}