package org.torrent.internal.protocol.message; import org.torrent.internal.data.Hash; import org.torrent.internal.util.Validator; public class HandShakeB implements BittorrentMessage { private final Hash peer_id; public HandShakeB(Hash peer_id) { Validator.notNull(peer_id, "Peer id is null!"); Validator.isTrue(peer_id.getType() == Hash.Type.ID, "Expected peer id to be of type ID, but is " + peer_id.getType()); Validator.isTrue(peer_id.getHashLength() == 20, "Expected hash length 20, but got " + peer_id.getHashLength()); this.peer_id = peer_id; } public Hash getPeerID() { return peer_id; } @Override public void accept(BTMessageVisitor visitor) { visitor.visitHandShakeB(this); } @Override public String toString() { return "HandShakeB: peerID = " + peer_id; } }