mirror of https://github.com/sismics/docs.git
56 lines
1.5 KiB
Java
56 lines
1.5 KiB
Java
package com.sismics.docs.core.dao;
|
|
|
|
import com.sismics.docs.core.constant.ConfigType;
|
|
import com.sismics.docs.core.model.jpa.Config;
|
|
import com.sismics.util.context.ThreadLocalContext;
|
|
|
|
import jakarta.persistence.EntityManager;
|
|
import jakarta.persistence.NoResultException;
|
|
|
|
/**
|
|
* Configuration parameter DAO.
|
|
*
|
|
* @author jtremeaux
|
|
*/
|
|
public class ConfigDao {
|
|
/**
|
|
* Gets a configuration parameter by its ID.
|
|
*
|
|
* @param id Configuration parameter ID
|
|
* @return Configuration parameter
|
|
*/
|
|
public Config getById(ConfigType id) {
|
|
EntityManager em = ThreadLocalContext.get().getEntityManager();
|
|
|
|
// Prevents from getting parameters outside of a transactional context (e.g. jUnit)
|
|
if (em == null) {
|
|
return null;
|
|
}
|
|
|
|
try {
|
|
return em.find(Config.class, id);
|
|
} catch (NoResultException e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Updates a configuration parameter.
|
|
*
|
|
* @param id Configuration parameter ID
|
|
* @param value Configuration parameter value
|
|
*/
|
|
public void update(ConfigType id, String value) {
|
|
EntityManager em = ThreadLocalContext.get().getEntityManager();
|
|
Config config = getById(id);
|
|
if (config == null) {
|
|
config = new Config();
|
|
config.setId(id);
|
|
config.setValue(value);
|
|
em.persist(config);
|
|
} else {
|
|
config.setValue(value);
|
|
}
|
|
}
|
|
}
|