package org.torrent.internal.protocol.message;
import org.torrent.internal.util.Validator;
public class Have implements BittorrentMessage {
private final int pieceIndex;
/*
* for realtime purposes
*/
private final int aib;
public Have(int pieceIndex) {
Validator.isTrue(pieceIndex >= 0, "Index invalid: " + pieceIndex);
this.pieceIndex = pieceIndex;
this.aib = -1;
}
public Have(int pieceIndex, int aib) {
this.pieceIndex = pieceIndex;
this.aib = aib;
}
public int getPieceIndex() {
return pieceIndex;
}
public int getAib() {
return aib;
}
@Override
public void accept(BTMessageVisitor visitor) {
visitor.visitHave(this);
}
@Override
public String toString() {
return "Have: " + pieceIndex;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + pieceIndex;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Have other = (Have) obj;
if (pieceIndex != other.pieceIndex)
return false;
return true;
}
}