
fi.evolver.basics.spring.lock.entity.Lock Maven / Gradle / Ivy
package fi.evolver.basics.spring.lock.entity;
import java.time.Instant;
import jakarta.persistence.*;
@Entity
@Table(name="lock")
public class Lock {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Column(name="name")
private String name;
@Column(name="lock_taken")
private long lockTaken;
@Column(name="valid_until")
private long validUntil;
public Lock() { }
public Lock(String name, long validMs) {
this.name = name;
this.lockTaken = Instant.now().toEpochMilli();
this.validUntil = lockTaken + validMs;
}
public long getId() {
return id;
}
public Instant getLockTaken() {
return Instant.ofEpochMilli(lockTaken);
}
public Instant getValidUntil() {
return Instant.ofEpochMilli(validUntil);
}
public boolean isValid() {
return getValidUntil().isAfter(Instant.now());
}
@Override
public String toString() {
return "Lock [id=" + id + ", " + (name != null ? "name=" + name + ", " : "") +
("lockTaken=" + getLockTaken() + ", ") +
("validUntil=" + getValidUntil()) + "]";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy