From c976468d2b797c3bad4dcba8ac388ca6261879b7 Mon Sep 17 00:00:00 2001 From: Quentin Legot Date: Tue, 13 Jun 2023 17:36:22 +0200 Subject: [PATCH] Add DataTracker and TrackedData --- .gitea/workflows/test.yml | 2 +- .../toolbox/core/data/DataTracker.java | 37 +++++++++++++++++++ .../toolbox/core/data/TrackedData.java | 5 +++ Pagination/build.gradle | 0 Tasks/build.gradle | 0 gradle.properties | 2 +- settings.gradle | 5 ++- 7 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 Core/src/main/java/fr/altarik/toolbox/core/data/DataTracker.java create mode 100644 Core/src/main/java/fr/altarik/toolbox/core/data/TrackedData.java delete mode 100644 Pagination/build.gradle delete mode 100644 Tasks/build.gradle diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 80ad767..3444f5f 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -32,7 +32,7 @@ jobs: if: ${{ runner.os != 'Windows' }} run: chmod +x ./gradlew - name: build - run: ./gradlew build --no-daemon + run: ./gradlew build --no-daemon --max-workers 1 #- name: test # run: ./gradlew test --no-daemon diff --git a/Core/src/main/java/fr/altarik/toolbox/core/data/DataTracker.java b/Core/src/main/java/fr/altarik/toolbox/core/data/DataTracker.java new file mode 100644 index 0000000..aa9bcb9 --- /dev/null +++ b/Core/src/main/java/fr/altarik/toolbox/core/data/DataTracker.java @@ -0,0 +1,37 @@ +package fr.altarik.toolbox.core.data; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public class DataTracker { + + private final Map trackedData; + + public DataTracker() { + this.trackedData = new HashMap<>(); + } + + public void startTracking(TrackedData data) { + trackedData.put(data, data.defaultValue()); + } + + public String getOrDefault(TrackedData data) { + return Objects.requireNonNull(trackedData.get(data)); + } + + public void set(TrackedData data, String value) { + String v = trackedData.get(data); + if(v != null) { + trackedData.putIfAbsent(data, value); + } else { + throw new IllegalArgumentException("Data " + data.name() + " is not tracked, please initialize it with DataTracker#startTracking(TrackedData, String) first"); + } + + } + + public void saveToDb() { + + } + +} diff --git a/Core/src/main/java/fr/altarik/toolbox/core/data/TrackedData.java b/Core/src/main/java/fr/altarik/toolbox/core/data/TrackedData.java new file mode 100644 index 0000000..c8bec33 --- /dev/null +++ b/Core/src/main/java/fr/altarik/toolbox/core/data/TrackedData.java @@ -0,0 +1,5 @@ +package fr.altarik.toolbox.core.data; + +public record TrackedData(String name, String defaultValue) { + +} diff --git a/Pagination/build.gradle b/Pagination/build.gradle deleted file mode 100644 index e69de29..0000000 diff --git a/Tasks/build.gradle b/Tasks/build.gradle deleted file mode 100644 index e69de29..0000000 diff --git a/gradle.properties b/gradle.properties index 16c0d2a..59d1cfe 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,6 +8,6 @@ loader_version=0.14.14 fabric_version=0.75.1+1.19.3 maven_group=fr.altarik.toolbox -maven_version=4.0.0-SNAPSHOT +maven_version=4.1.0-SNAPSHOT repo_username=Altarik repo_password=password diff --git a/settings.gradle b/settings.gradle index 4a814ce..c266500 100644 --- a/settings.gradle +++ b/settings.gradle @@ -10,4 +10,7 @@ pluginManagement { } rootProject.name = 'Toolbox' -include(':Tasks', ':Database', ':Pagination', ':Core') +include(':Tasks') +include(':Database') +include(':Pagination') +include(':Core')