@SuppressWarnings("resource")
	@Pure
	public Object getRawValue(int recordNumber, String name, OutputParameter<AttributeType> type) throws AttributeException {
		try {
			final DBaseFileReader dbReader = getReader();
			synchronized (dbReader) {
				dbReader.seek(recordNumber);
				final DBaseFileRecord record = dbReader.readNextDBFRecord();
				if (record != null) {
					final int column = dbReader.getDBFFieldIndex(name);
					if (column >= 0) {
						final Object value = record.getFieldValue(column);
						final DBaseFieldType dbfType = dbReader.getDBFFieldType(column);
						type.set(dbfType.toAttributeType());
						return value;
					}
				}
				throw new NoAttributeFoundException(name);
			}
		} catch (IOException e) {
			throw new AttributeException(e);
		}
	}
@ SuppressWarnings ( "resource" ) @ Pure public Object getRawValue ( int recordNumber , String name , OutputParameter < AttributeType > type ) throws AttributeException { try { final DBaseFileReader dbReader = getReader ( ) ; synchronized ( dbReader ) { dbReader . seek ( recordNumber ) ; final DBaseFileRecord record = dbReader . readNextDBFRecord ( ) ; if ( record != null ) { final int column = dbReader . getDBFFieldIndex ( name ) ; if ( column >= 0 ) { final Object value = record . getFieldValue ( column ) ; final DBaseFieldType dbfType = dbReader . getDBFFieldType ( column ) ; type . set ( dbfType . toAttributeType ( ) ) ; return value ; } } throw new NoAttributeFoundException ( name ) ; } } catch ( IOException e ) { throw new AttributeException ( e ) ; } }
Replies the raw value that corresponds to the specified
attribute name for the given record.

@param recordNumber is the index of the record to read ({@code 0..recordCount-1}).
@param name is the name of the attribute value to replies.
@param type is the type of the replied value. Tis attribute will be set by this function.
@return the value extracted from the pool.
@throws AttributeException if an attribute cannot be read.