package js.tinyvm;
public abstract class WritableDataWithOffset implements WritableData
{
/**
* Offset.
*/
private int _offset = -1;
/**
* Init offset.
*
* @param startOffset start offset
* @throws TinyVMException if offset is not correct
*/
public void initOffset (int startOffset) throws TinyVMException
{
assert startOffset != -1: "Precondition: aStart != -1";
if (startOffset < 0 || startOffset > 0xFFFF)
{
throw new TinyVMException("Offset out of range (" + startOffset + ")");
}
_offset = startOffset;
}
/**
* Offset.
*
* @throws TinyVMException if offset is not correct
*/
public int getOffset () throws TinyVMException
{
assert _offset != -1: "Precondition: _offset != -1";
if (_offset < 0 || _offset > 0xFFFF)
{
throw new TinyVMException("Offset out of range (" + _offset + ")");
}
assert _offset >= 0 && _offset <= 0xFFFF: "Postcondition: result >=0 && result <= 0xFFFF";
return _offset;
}
}