package choonster.testmod3.capability.lastusetime;
import choonster.testmod3.api.capability.lastusetime.ILastUseTime;
import javax.annotation.Nullable;
/**
* Default implementation of {@link ILastUseTime}.
*
* @author Choonster
*/
public class LastUseTime implements ILastUseTime {
private long lastUseTime;
private final boolean automaticUpdates;
public LastUseTime(final boolean automaticUpdates) {
this.automaticUpdates = automaticUpdates;
}
/**
* Get the last use time.
*
* @return The last use time
*/
@Override
public long get() {
return lastUseTime;
}
/**
* Set the last use time.
*
* @param lastUseTime The last use time
*/
@Override
public void set(final long lastUseTime) {
this.lastUseTime = lastUseTime;
}
/**
* Should this object's last use time be updated automatically?
*
* @return Whether to receive automatic updates
*/
@Override
public boolean automaticUpdates() {
return automaticUpdates;
}
@Override
public boolean equals(@Nullable final Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
final LastUseTime that = (LastUseTime) obj;
return lastUseTime == that.lastUseTime;
}
@Override
public int hashCode() {
return (int) (lastUseTime ^ (lastUseTime >>> 32));
}
}