JAL-4001 start of GA4 client class
[jalview.git] / src / jalview / analytics / GoogleAnalytics4.java
1 package jalview.analytics;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Map;
6 import java.util.Random;
7
8 public class GoogleAnalytics4 {
9         private static final String JALVIEW_ID = "Jalview Desktop";
10         private static final String SESSION_ID = new Random().toString();
11         private static final String MEASUREMENT_ID = "G-6TMPHMXEQ0";
12         private static final String BASE_URL = "https://www.google-analytics.com/mp/collect";
13
14         private List<Map.Entry<String, String>> queryStringValues;
15         private List<Map.Entry<String, Object>> jsonValues;
16         private List<Map.Entry<String, String>> cookies;
17
18         private void addToJson(String key, List<String> values) {
19         }
20
21         private void addToJson(String key, String value) {
22         }
23
24         private void addToJson(String key, int value) {
25         }
26
27         private void addToJson(String key, boolean value) {
28         }
29
30         private void addToJson(String key, Object[] array) {
31         }
32
33         private void addQueryStringValue(String key, String value) {
34         }
35
36         private void reset() {
37                 jsonValues = new ArrayList<>();
38                 queryStringValues = new ArrayList<>();
39                 cookies = new ArrayList<>();
40         }
41
42         private String buildJson() {
43                 StringBuilder sb = new StringBuilder();
44                 int indent = 0;
45                 sb.append("{");
46                 indent++;
47
48                 sb.append("}");
49                 return sb.toString();
50         }
51
52         private void addJsonObject(StringBuilder sb, int indent, String key, Object value) {
53                 indent(sb, indent);
54                 sb.append('"').append(key).append('"');
55                 sb.append(": ");
56                 if (List.class.equals(value.getClass())) {
57                         sb.append('\n');
58                 }
59                 addJsonValue(sb, indent, value);
60                 sb.append(",\n");
61         }
62
63         private void addJsonValue(StringBuilder sb, int indent, Object value) {
64                 if (value == null) {
65                         return;
66                 }
67                 Class c = value.getClass();
68                 if (String.class.equals(c)) {
69                 } else if (Integer.class.equals(c)) {
70                 } else if (Boolean.class.equals(c)) {
71                 }
72                 sb.append(value);
73         }
74
75         private void indent(StringBuilder sb, int indent) {
76                 sb.append("  ".repeat(indent));
77         }
78 }