/**
*
*/
package org.jhove2.core.source;
import org.jhove2.annotation.ReportableProperty;
/** Interface for measurable {@link org.jhove2.core.source.Source} units, that
* is, those that have a knowable size.
*
* @author slabrams
*/
public interface MeasurableSource
extends Source
{
/** Get ending offset of the source unit, in bytes, relative to the
* parent source. If there is no parent, the ending offset is the
* size.
* @return Starting offset of the source unit
*/
@ReportableProperty(order=2, value="Ending offset, in bytes, relative to " +
"the parent source. If there is no parent, the offset is the size.")
public long getEndingOffset();
/** Get size, in bytes.
* @return Size
*/
@ReportableProperty(order=3, value="Size, in bytes.")
public long getSize();
/** Get starting offset of the source unit, in bytes, relative to the
* parent source. If there is no parent, the starting offset is 0.
* @return Starting offset of the source unit
*/
@ReportableProperty(order=1, value="Starting byte offset, in bytes, relative " +
"to the parent source. If there is no parent, the offset is 0.")
public long getStartingOffset();
}