/* * Copyright @ 2013 CurisTEC, S.A.S. All Rights Reserved. */ package net.curisit.securis.db; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityListeners; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import net.curisit.securis.db.common.ModificationTimestampEntity; import net.curisit.securis.db.listeners.ModificationTimestampListener; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.fasterxml.jackson.annotation.JsonProperty; /** * Settings *

* Simple key/value store with last modification timestamp. * Table rows have columns: "key", "value", "modification_timestamp". * * Mapping details: * - Table: settings * - Listeners: {@link ModificationTimestampListener} * - NamedQuery: get-param by key * * @author JRA * Last reviewed by JRA on Oct 5, 2025. */ @Entity @EntityListeners({ ModificationTimestampListener.class }) @Table(name = "settings") @NamedQueries({ @NamedQuery(name = "get-param", query = "SELECT p FROM Settings p where p.key = :key") }) public class Settings implements ModificationTimestampEntity, Serializable { @SuppressWarnings("unused") private static final Logger LOG = LogManager.getLogger(Settings.class); private static final long serialVersionUID = 1L; /** Primary key: setting key. */ @Id String key; /** Setting value as string. */ String value; /** Last modification timestamp. */ @Column(name = "modification_timestamp") @JsonProperty("modification_timestamp") private Date modificationTimestamp; // -------- Getters/setters -------- /** * getKey

* Return setting key. * * @return key */ public String getKey() { return key; } /** * setKey

* Set setting key. * * @param key */ public void setKey(String key) { this.key = key; } /** * getValue

* Return value. * * @return value */ public String getValue() { return value; } /** * setValue

* Set value. * * @param value */ public void setValue(String value) { this.value = value; } /** * getModificationTimestamp

* Required by ModificationTimestampEntity. * * @return modificationTimestamp */ @Override public Date getModificationTimestamp() { return modificationTimestamp; } /** * setModificationTimestamp

* Required by ModificationTimestampEntity. * * @param modificationTimestamp */ @Override public void setModificationTimestamp(Date modificationTimestamp) { this.modificationTimestamp = modificationTimestamp; } /** * toString

* Get the string describing the current object * * @return object string */ @Override public String toString() { return String.format("{key: %s, value: %s, ts: %s}", key, value, modificationTimestamp); } }