1 package jalview.analytics;
3 import java.util.ArrayList;
6 import java.util.Random;
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";
14 private List<Map.Entry<String, String>> queryStringValues;
15 private List<Map.Entry<String, Object>> jsonValues;
16 private List<Map.Entry<String, String>> cookies;
18 private void addToJson(String key, List<String> values) {
21 private void addToJson(String key, String value) {
24 private void addToJson(String key, int value) {
27 private void addToJson(String key, boolean value) {
30 private void addToJson(String key, Object[] array) {
33 private void addQueryStringValue(String key, String value) {
36 private void reset() {
37 jsonValues = new ArrayList<>();
38 queryStringValues = new ArrayList<>();
39 cookies = new ArrayList<>();
42 private String buildJson() {
43 StringBuilder sb = new StringBuilder();
52 private void addJsonObject(StringBuilder sb, int indent, String key, Object value) {
54 sb.append('"').append(key).append('"');
56 if (List.class.equals(value.getClass())) {
59 addJsonValue(sb, indent, value);
63 private void addJsonValue(StringBuilder sb, int indent, Object value) {
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)) {
75 private void indent(StringBuilder sb, int indent) {
76 sb.append(" ".repeat(indent));