package com.linkedin.databus.core;
public class ScnTxnPos
{
private String _file;
private long _fileOffset;
private long _lineNumber; // Useful for manual debugging
private long _lineOffset; // Useful for manual debugging
private long _minScn;
private long _maxScn;
// Rank of the found txn = Number of transactions scanned before this transactions (across multiple trail files) in the lifetime of the InputStream
private long _txnRank = -1;
public void copyFrom(ScnTxnPos original)
{
_file = original.getFile();
_fileOffset = original.getFileOffset();
_lineNumber = original.getLineNumber();
_lineOffset = original.getLineOffset();
_minScn = original.getMinScn();
_maxScn = original.getMaxScn();
}
@Override
public String toString()
{
return "ScnTxnPos [_file=" + _file + ", _fileOffset=" + _fileOffset
+ ", _lineNumber=" + _lineNumber + ", _lineOffset=" + _lineOffset + ", _minScn="
+ _minScn + ", _maxScn=" + _maxScn + "]";
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((_file == null) ? 0 : _file.hashCode());
result = prime * result + (int) (_fileOffset ^ (_fileOffset >>> 32));
result = prime * result + (int) (_maxScn ^ (_maxScn >>> 32));
result = prime * result + (int) (_minScn ^ (_minScn >>> 32));
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ScnTxnPos other = (ScnTxnPos) obj;
if (_file == null)
{
if (other._file != null)
return false;
}
else if (!_file.equals(other._file))
return false;
if (_fileOffset != other._fileOffset)
return false;
if (_maxScn != other._maxScn)
return false;
if (_minScn != other._minScn)
return false;
return true;
}
public boolean isEmpty()
{
return 0 > _maxScn;
}
public String getFile()
{
return _file;
}
public void setFile(String file)
{
this._file = file;
}
public long getFileOffset()
{
return _fileOffset;
}
public void setFileOffset(long fileOffset)
{
this._fileOffset = fileOffset;
}
public long getLineNumber()
{
return _lineNumber;
}
public void setLineNumber(long lineNumber)
{
this._lineNumber = lineNumber;
}
public long getLineOffset()
{
return _lineOffset;
}
public void setLineOffset(long lineOffset)
{
this._lineOffset = lineOffset;
}
public long getMaxScn()
{
return _maxScn;
}
public long getMinScn()
{
return _minScn;
}
public void setMaxScn(long scn)
{
this._maxScn = scn;
}
public void setMinScn(long scn)
{
this._minScn = scn;
}
public long getTxnRank() {
return _txnRank;
}
public void setTxnRank(long txnRank) {
this._txnRank = txnRank;
}
}