public void update(PeerState state, long uploaded, long downloaded,
			long left) {
		if (PeerState.STARTED.equals(state) && left == 0) {
			state = PeerState.COMPLETED;
		}

		if (!state.equals(this.state)) {
			logger.info("Peer " + this + " " + state.name().toLowerCase() +
					" download of " + this.torrent + ".");
		}

		this.state = state;
		this.lastAnnounce = new Date();
	}