package com.nicewuerfel.blockown;
import com.google.common.base.Optional;
import java.util.Date;
import javax.annotation.Nonnull;
/**
* Represents a owning ({@link Ownable}-{@link User}-Mapping at a specific time.
*
* @author Pheasn
*/
public final class OwningState {
@Nonnull
private final Ownable ownable;
@Nonnull
private final Optional<User> user;
private final long timeStamp;
public OwningState(@Nonnull Ownable ownable, @Nonnull Optional<User> user) {
this.ownable = ownable;
this.user = user;
this.timeStamp = System.currentTimeMillis();
}
public Ownable getOwnable() {
return ownable;
}
public Optional<User> getUser() {
return user;
}
public Date getTimeStamp() {
return new Date(timeStamp);
}
}