package org.vertexium.mutation;
import org.vertexium.Visibility;
import org.vertexium.util.IncreasingTime;
public class ExtendedDataMutation implements Comparable<ExtendedDataMutation> {
private final String tableName;
private final String row;
private final String columnName;
private final Object value;
private final long timestamp;
private final Visibility visibility;
public ExtendedDataMutation(
String tableName,
String row,
String columnName,
Object value,
Long timestamp,
Visibility visibility
) {
this.tableName = tableName;
this.row = row;
this.columnName = columnName;
this.value = value;
this.timestamp = timestamp == null ? IncreasingTime.currentTimeMillis() : timestamp;
this.visibility = visibility;
}
public String getTableName() {
return tableName;
}
public String getRow() {
return row;
}
public String getColumnName() {
return columnName;
}
public Object getValue() {
return value;
}
public long getTimestamp() {
return timestamp;
}
public Visibility getVisibility() {
return visibility;
}
@Override
public String toString() {
return "ExtendedDataMutation{" +
"tableName='" + tableName + '\'' +
", row='" + row + '\'' +
", columnName='" + columnName + '\'' +
", value=" + value +
", timestamp=" + timestamp +
", visibility=" + visibility +
'}';
}
@Override
public int compareTo(ExtendedDataMutation other) {
int i = tableName.compareTo(other.tableName);
if (i != 0) {
return i;
}
i = row.compareTo(other.row);
if (i != 0) {
return i;
}
i = columnName.compareTo(other.columnName);
if (i != 0) {
return i;
}
return 0;
}
}