View Javadoc
1   /*
2    * Copyright (C) 2023 B3Partners B.V.
3    *
4    * SPDX-License-Identifier: MIT
5    */
6   package org.tailormap.api.persistence;
7   
8   import com.fasterxml.jackson.databind.JsonNode;
9   import jakarta.persistence.Column;
10  import jakarta.persistence.Entity;
11  import jakarta.persistence.EntityListeners;
12  import jakarta.persistence.Id;
13  import jakarta.persistence.Version;
14  import org.hibernate.annotations.Type;
15  import org.tailormap.api.persistence.listener.EntityEventPublisher;
16  
17  @Entity
18  @EntityListeners(EntityEventPublisher.class)
19  public class Configuration {
20    public static final String DEFAULT_APP = "default-app";
21  
22    public static final String DEFAULT_BASE_APP = "default-base-app";
23  
24    @Id private String key;
25  
26    @Version private Long version;
27  
28    @Column(columnDefinition = "text")
29    private String value;
30  
31    @Type(value = io.hypersistence.utils.hibernate.type.json.JsonBinaryType.class)
32    @Column(columnDefinition = "jsonb")
33    private JsonNode jsonValue;
34  
35    private boolean availableForViewer;
36  
37    // <editor-fold desc="getters and setters">
38    public String getKey() {
39      return key;
40    }
41  
42    public void setKey(String key) {
43      this.key = key;
44    }
45  
46    public Long getVersion() {
47      return version;
48    }
49  
50    public Configuration setVersion(Long version) {
51      this.version = version;
52      return this;
53    }
54  
55    public String getValue() {
56      return value;
57    }
58  
59    public void setValue(String value) {
60      this.value = value;
61    }
62  
63    public JsonNode getJsonValue() {
64      return jsonValue;
65    }
66  
67    public void setJsonValue(JsonNode jsonValue) {
68      this.jsonValue = jsonValue;
69    }
70  
71    public boolean isAvailableForViewer() {
72      return availableForViewer;
73    }
74  
75    public void setAvailableForViewer(boolean availableForViewer) {
76      this.availableForViewer = availableForViewer;
77    }
78    // </editor-fold>
79  }