All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fi.evolver.basics.spring.lock.entity.Lock Maven / Gradle / Ivy

There is a newer version: 6.7.0
Show newest version
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