ConfigurationDO.java
- package org.europa.together.domain;
- import java.io.Serializable;
- import java.util.Objects;
- import jakarta.persistence.Column;
- import jakarta.persistence.Entity;
- import jakarta.persistence.Id;
- import jakarta.persistence.Index;
- import jakarta.persistence.PrePersist;
- import jakarta.persistence.Table;
- import jakarta.persistence.UniqueConstraint;
- import org.europa.together.application.LogbackLogger;
- import org.europa.together.business.Logger;
- import org.europa.together.utils.StringUtils;
- /**
- * Application wide configuration with key=value entries. For an easier
- * maintenance are entries with module-name, module-version and a deprecated
- * marker extended.
- */
- @Entity
- @Table(name = "APP_CONFIG",
- //CHECKSTYLE:OFF
- indexes = {
- @Index(columnList = "CONF_KEY", name = "configuration_key"),
- @Index(columnList = "MODUL_NAME", name = "modul_name"),
- @Index(columnList = "CONF_SET", name = "configuration_set")
- },
- //CHECKSTYLE:ON
- uniqueConstraints = {
- @UniqueConstraint(columnNames
- = {"MODUL_NAME", "SERVICE_VERSION", "CONF_KEY"})
- }
- )
- public class ConfigurationDO implements Serializable {
- private static final long serialVersionUID = 102L;
- private static final Logger LOGGER = new LogbackLogger(ConfigurationDO.class);
- /**
- * The name of the used database table for this domain object.
- */
- public static final String TABLE_NAME = "APP_CONFIG";
- @Id //validate uuid
- @Column(name = "IDX")
- private String uuid;
- @Column(name = "CONF_KEY", nullable = false)
- private String key;
- @Column(name = "CONF_VALUE")
- private String value;
- @Column(name = "DEFAULT_VALUE", nullable = false)
- private String defaultValue;
- @Column(name = "MODUL_NAME", nullable = false)
- private String modulName;
- @Column(name = "SERVICE_VERSION", nullable = false)
- private String version;
- @Column(name = "CONF_SET", nullable = false)
- private String configurationSet;
- @Column(name = "DEPRECATED", nullable = false)
- private boolean deprecated;
- @Column(name = "MANDATORY", nullable = false)
- private boolean mandatory;
- @Column(name = "COMMENT")
- private String comment;
- /**
- * Constructor.
- */
- public ConfigurationDO() {
- //PreSet
- this.uuid = StringUtils.generateUUID();
- }
- /**
- * Constructor.
- *
- * @param key as String
- * @param value as String
- * @param modulName as String
- * @param version as String
- */
- public ConfigurationDO(final String key, final String value, final String modulName,
- final String version) {
- //PreSet
- this.uuid = StringUtils.generateUUID();
- //mandatory
- this.modulName = modulName;
- this.version = version;
- this.key = key;
- this.value = value;
- //optional
- this.configurationSet = "default";
- this.defaultValue = "NIL";
- this.deprecated = false;
- this.mandatory = false;
- this.comment = "";
- }
- /**
- * Actions who have to performed before objects get persisted. e.g. cerate
- * default entries in the database.
- */
- @PrePersist
- public void prePersist() {
- this.configurationSet = "default";
- this.defaultValue = "NIL";
- this.deprecated = false;
- this.mandatory = false;
- LOGGER.log("@PrePersist [ConfigurationDO]", LogLevel.INFO);
- }
- //<editor-fold defaultstate="collapsed" desc="Getter / Setter">
- /**
- * Show if entry is deprecated.
- *
- * @return true if is deprecated
- */
- public boolean isDeprecated() {
- return deprecated;
- }
- /**
- * Mark if an configuration entry is mandatory.
- *
- * @return true if is mandatory
- */
- public boolean isMandatory() {
- return mandatory;
- }
- /**
- * Set the comment.
- *
- * @param comment as String
- */
- public void setComment(final String comment) {
- this.comment = comment;
- }
- /**
- * Set the configuration set.
- *
- * @param configurationSet as String
- */
- public void setConfigurationSet(final String configurationSet) {
- this.configurationSet = configurationSet;
- }
- /**
- * Set the default value.
- *
- * @param defaultValue as String
- */
- public void setDefaultValue(final String defaultValue) {
- this.defaultValue = defaultValue;
- }
- /**
- * Set if a entry is deprecated.
- *
- * @param deprecated as boolean
- */
- public void setDeprecated(final boolean deprecated) {
- this.deprecated = deprecated;
- }
- /**
- * Set if a entry is mandatory.
- *
- * @param mandatory as boolean
- */
- public void setMandatory(final boolean mandatory) {
- this.mandatory = mandatory;
- }
- /**
- * Set key.
- *
- * @param key as String
- */
- public void setKey(final String key) {
- this.key = key;
- }
- /**
- * Set moduleĀ“name.
- *
- * @param modulName as String
- */
- public void setModulName(final String modulName) {
- this.modulName = modulName;
- }
- /**
- * Set the UUID.
- *
- * @param uuid as String
- */
- public void setUuid(final String uuid) {
- this.uuid = uuid;
- }
- /**
- * Set value.
- *
- * @param value as String
- */
- public void setValue(final String value) {
- this.value = value;
- }
- /**
- * Set version of module.
- *
- * @param version as String
- */
- public void setVersion(final String version) {
- this.version = version;
- }
- /**
- * Get the comment.
- *
- * @return comment as String
- */
- public String getComment() {
- return comment;
- }
- /**
- * Get the configuration set.
- *
- * @return ConfigurationSet as String.
- */
- public String getConfigurationSet() {
- return configurationSet;
- }
- /**
- * Get the default value.
- *
- * @return dafaultValue as String
- */
- public String getDefaultValue() {
- return defaultValue;
- }
- /**
- * Get the key.
- *
- * @return key as String
- */
- public String getKey() {
- return key;
- }
- /**
- * Get Modulename.
- *
- * @return modulename as String
- */
- public String getModulName() {
- return modulName;
- }
- /**
- * Get the UUID.
- *
- * @return UUID as String
- */
- public String getUuid() {
- return uuid;
- }
- /**
- * Get value.
- *
- * @return value as String
- */
- public String getValue() {
- return value;
- }
- /**
- * Get module version.
- *
- * @return moduleversion as String
- */
- public String getVersion() {
- return version;
- }
- //</editor-fold>
- @Override
- public boolean equals(final Object obj) {
- boolean success = false;
- if (obj != null && obj instanceof ConfigurationDO) {
- if (this == obj) {
- success = true;
- } else {
- final ConfigurationDO other = (ConfigurationDO) obj;
- if (Objects.equals(this.key, other.key)
- && Objects.equals(this.modulName, other.modulName)
- && Objects.equals(this.version, other.version)) {
- success = true;
- }
- }
- }
- return success;
- }
- @Override
- public int hashCode() {
- int hash = Objects.hashCode(this.key);
- hash += Objects.hashCode(this.modulName);
- hash += Objects.hashCode(this.version);
- return hash;
- }
- @Override
- public String toString() {
- return "ConfigurationDO{" + "uuid=" + uuid
- + ", key=" + key
- + ", value=" + value
- + ", defaultValue=" + defaultValue
- + ", modulName=" + modulName
- + ", configurationSet=" + configurationSet
- + ", version=" + version
- + ", deprecated=" + deprecated
- + ", mandatory=" + mandatory
- + ", comment=" + comment + '}';
- }
- }