class AbstractShapeFileReader extends AbstractCommonShapeFileReader<E> {

	@Override
	public void seek(int recordIndex) throws IOException {
		if (this.shxReader != null) {
			this.shxReader.seek(recordIndex);
			final ShapeFileIndexRecord shxRecord = this.shxReader.read();
			if (shxRecord != null) {
				assert shxRecord.getRecordIndex() == recordIndex;
				readHeader();
				setReadingPosition(
						recordIndex,
						shxRecord.getOffsetInContent());
				return;
			}
		}
		throw new SeekOperationDisabledException("Unspecified Shape File Index"); //$NON-NLS-1$
	}

	public  AbstractShapeFileReader(ReadableByteChannel inputStream, DBaseFileReader dbase_importer,
			ShapeFileIndexReader shxReader);
	public  AbstractShapeFileReader(InputStream inputStream, DBaseFileReader dbase_importer, ShapeFileIndexReader shxReader);
	public  AbstractShapeFileReader(File file, DBaseFileReader dbase_importer, ShapeFileIndexReader shxReader);
	public  AbstractShapeFileReader(URL inputStream, DBaseFileReader dbase_importer,
			ShapeFileIndexReader shxReader);

}