package com.github.ruediste1.btrbck.dom;
import java.util.UUID;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import com.google.common.base.Objects;
/**
* Entry in the {@link VersionHistory} recording that a snapshot has been taken.
* The entry can represent multiple snapshots, as long as they are taken from
* the same stream (by {@link Stream#id})
*/
@XmlRootElement(name = "snapshot")
public class SnapshotVersionHistoryEntry extends VersionHistoryEntry {
private static final long serialVersionUID = 1L;
/**
* Number of snapshots this entry represents
*/
@XmlAttribute
public int count = 1;
public SnapshotVersionHistoryEntry() {
}
public SnapshotVersionHistoryEntry(UUID streamId) {
super(streamId);
}
@Override
public int getRepresentedSnapshotCount() {
return count;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj.getClass() != getClass()) {
return false;
}
SnapshotVersionHistoryEntry other = (SnapshotVersionHistoryEntry) obj;
return streamId.equals(other.streamId) && count == other.count;
}
@Override
public int hashCode() {
return Objects.hashCode(streamId, count);
}
@Override
public String toString() {
return "(Snapshot: " + streamId + " count: " + count + ")";
}
}