
uk.gov.nationalarchives.droid.binFileReader.ByteReader Maven / Gradle / Ivy
/*
* The National Archives 2005-2006. All rights reserved.
* See Licence.txt for full licence details.
*
* Developed by:
* Tessella Support Services plc
* 3 Vineyard Chambers
* Abingdon, OX14 3PX
* United Kingdom
* http://www.tessella.com
*
* Tessella/NPD/4826
* PRONOM 5a
*
* $Id: ByteReader.java,v 1.6 2006/03/13 15:15:28 linb Exp $
*
* $Log: ByteReader.java,v $
* Revision 1.6 2006/03/13 15:15:28 linb
* Changed copyright holder from Crown Copyright to The National Archives.
* Added reference to licence.txt
* Changed dates to 2005-2006
*
* Revision 1.5 2006/02/09 13:17:41 linb
* Changed StreamByteReader to InputStreamByteReader
* Refactored common code from UrlByteReader and InputStreamByteReader into new class StreamByteReader, from which they both inherit
* Updated javadoc
*
* Revision 1.4 2006/02/09 12:14:16 linb
* Changed some javadoc to allow it to be created cleanly
*
* Revision 1.3 2006/02/08 12:51:53 linb
* Added javadoc comments for file.
*
* Revision 1.2 2006/02/08 08:56:35 linb
* - Added header comments
*
*/
package uk.gov.nationalarchives.droid.binFileReader;
import uk.gov.nationalarchives.droid.base.FileFormatHit;
/**
* Interface for accessing the bytes from a file, URL or stream.
*
* Create an instance with AbstractByteReader.newByteReader()
.
*
* @author linb
*/
public interface ByteReader {
/**
* Add another hit to the list of hits for this file.
*
* @param theHit
* The FileFormatHit
to be added
*/
public void addHit(FileFormatHit theHit);
public byte[] getbuffer();
/**
* Get a byte from file
*
* @param fileIndex
* position of required byte in the file
* @return the byte at position fileIndex
in the file
*/
public byte getByte(long fileIndex);
/**
* Get classification of the file
*/
public int getClassification();
/**
* Gets the current position of the file marker.
*
* @return the current position of the file marker
*/
public long getFileMarker();
/**
* Get file name of the associated file
*/
public String getFileName();
/**
* Get file path of the associated file
*/
public String getFilePath();
/**
* Get a file format hit
*
* @param theIndex
* index of the FileFormatHit
to get
* @return the hit associated with theIndex
*/
public FileFormatHit getHit(int theIndex);
/**
* Get any warning message created when identifying this file
*/
public String getIdentificationWarning();
/**
* Returns the number of bytes in the file
*/
public long getNumBytes();
/**
* Get number of file format hits
*/
public int getNumHits();
/**
* Checks whether the file has yet been classified
*/
public boolean isClassified();
/**
* Remove a hit from the list of hits for this file.
*
* @param theIndex
* Index of the hit to be removed
*/
public void removeHit(int theIndex);
/**
* Set identification status to Error
*/
public void setErrorIdent();
/**
* Position the file marker at a given byte position.
*
* The file marker is used to record how far through the file the byte
* sequence matching algorithm has got.
*
* @param markerPosition
* The byte number in the file at which to position the marker
*/
public void setFileMarker(long markerPosition);
/**
* Set identification warning
*
* @param theWarning
* the warning message to use
*/
public void setIdentificationWarning(String theWarning);
/**
* Set identification status to No identification
*/
public void setNoIdent();
/* Setters for identification status */
/**
* Set identification status to Positive
*/
public void setPositiveIdent();
/**
* Set identification status to Tentative
*/
public void setTentativeIdent();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy