package au.com.vaadinutils.dashboard; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Table; import au.com.vaadinutils.dao.EntityManagerProvider; import au.com.vaadinutils.entity.BaseCrudEntity; /** * The persistent class for the tblportal database table. * */ @Entity @Table(name = "tblportal") public class Tblportal extends BaseCrudEntity { /** * */ private static final long serialVersionUID = 6749641927189770291L; @JoinColumn(name = "layoutId") private Tblportallayout portalLayout; @OneToMany(mappedBy = "portal") private Set<Tblportalconfig> configs = new HashSet<>(); private String type; public Tblportal() { } @JoinColumn(name = "portalDataId") TblPortalData data; public String getType() { return this.type; } public void setType(String type) { this.type = type; } public Set<Tblportalconfig> getConfigs() { return Collections.unmodifiableSet(configs); } public void addConfig(Tblportalconfig config) { config.setPortal(this); configs.add(config); } public void removeConfig(Tblportalconfig config) { configs.remove(config); } public Map<String, Tblportalconfig> createConfigMap() { Map<String, Tblportalconfig> configMap = new HashMap<>(); for (Tblportalconfig config : getConfigs()) { configMap.put(config.getKey(), config); addConfig(config); EntityManagerProvider.persist(config); } return configMap; } public void setConfigValue(String key, String value) { Tblportalconfig config = createConfigMap().get(key); if (config == null) { config = new Tblportalconfig(); config.setKey(key); addConfig(config); EntityManagerProvider.persist(config); } config.setValue(value); } public String getConfigValue(String key, String defaultValue) { Tblportalconfig config = createConfigMap().get(key); if (config == null) { return defaultValue; } return config.getValue(); } public void setPortalLayout(Tblportallayout portalLayout) { this.portalLayout = portalLayout; } public Tblportallayout getPortalLayout() { return portalLayout; } public TblPortalData getData() { return data; } }