com.github.ltsopensource.kv.index.IndexItem Maven / Gradle / Ivy
package com.github.ltsopensource.kv.index;
import java.io.Serializable;
/**
* Key 在内存中的index
*
* @author Robert HG ([email protected]) on 12/13/15.
*/
public class IndexItem implements Serializable {
/**
* key
*/
private K key;
/**
* 所在文件
*/
private long fileId;
/**
* 在文件的起始位置
*/
private long fromIndex;
/**
* 写的内容的长度
*/
private int length;
public K getKey() {
return key;
}
public void setKey(K key) {
this.key = key;
}
public long getFileId() {
return fileId;
}
public void setFileId(long fileId) {
this.fileId = fileId;
}
public long getFromIndex() {
return fromIndex;
}
public void setFromIndex(long fromIndex) {
this.fromIndex = fromIndex;
}
public int getLength() {
return length;
}
public void setLength(int length) {
this.length = length;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
IndexItem> indexItem = (IndexItem>) o;
if (fileId != indexItem.fileId) return false;
if (fromIndex != indexItem.fromIndex) return false;
if (length != indexItem.length) return false;
return key != null ? key.equals(indexItem.key) : indexItem.key == null;
}
@Override
public int hashCode() {
int result = key != null ? key.hashCode() : 0;
result = 31 * result + (int) (fileId ^ (fileId >>> 32));
result = 31 * result + (int) (fromIndex ^ (fromIndex >>> 32));
result = 31 * result + length;
return result;
}
@Override
public String toString() {
return "IndexItem{" +
"key=" + key +
", fileId=" + fileId +
", fromIndex=" + fromIndex +
", length=" + length +
'}';
}
}