From 615438d55a6f4904fe16b7075452824bb90190d4 Mon Sep 17 00:00:00 2001 From: Flowsqy <47575244+Flowsqy@users.noreply.github.com> Date: Tue, 15 Feb 2022 21:37:15 +0100 Subject: [PATCH] Add basic providers --- .../hologram/provider/ConstantProvider.java | 25 ++++++++ .../config/hologram/provider/MapProvider.java | 59 +++++++++++++++++++ .../provider/RequirementProvider.java | 10 ++++ 3 files changed, 94 insertions(+) create mode 100644 plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/ConstantProvider.java create mode 100644 plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/MapProvider.java create mode 100644 plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/RequirementProvider.java diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/ConstantProvider.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/ConstantProvider.java new file mode 100644 index 0000000..2632b4e --- /dev/null +++ b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/ConstantProvider.java @@ -0,0 +1,25 @@ +package de.epiceric.shopchest.config.hologram.provider; + +import de.epiceric.shopchest.config.hologram.HologramFormat; + +import java.util.Map; + +public class ConstantProvider implements RequirementProvider { + + private final T constant; + + public ConstantProvider(T constant) { + this.constant = constant; + } + + + @Override + public T apply(Map requirementObjectMap) { + return constant; + } + + @Override + public String toString() { + return constant.toString(); + } +} diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/MapProvider.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/MapProvider.java new file mode 100644 index 0000000..61c20a0 --- /dev/null +++ b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/MapProvider.java @@ -0,0 +1,59 @@ +package de.epiceric.shopchest.config.hologram.provider; + +import de.epiceric.shopchest.config.hologram.HologramFormat; + +import java.util.Map; + +public abstract class MapProvider implements RequirementProvider { + + protected final HologramFormat.Requirement requirement; + + public MapProvider(HologramFormat.Requirement requirement) { + this.requirement = requirement; + } + + @Override + public String toString() { + return requirement.toString(); + } + + public final static class StringMapProvider extends MapProvider { + + public StringMapProvider(HologramFormat.Requirement requirement) { + super(requirement); + } + + @Override + public String apply(Map requirementValues) { + return (String) requirementValues.get(requirement); + } + + } + + public final static class BooleanMapProvider extends MapProvider { + + public BooleanMapProvider(HologramFormat.Requirement requirement) { + super(requirement); + } + + @Override + public Boolean apply(Map requirementValues) { + return (Boolean) requirementValues.get(requirement); + } + + } + + public final static class DoubleMapProvider extends MapProvider { + + public DoubleMapProvider(HologramFormat.Requirement requirement) { + super(requirement); + } + + @Override + public Double apply(Map requirementValues) { + return (Double) requirementValues.get(requirement); + } + + } + +} diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/RequirementProvider.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/RequirementProvider.java new file mode 100644 index 0000000..66ffe49 --- /dev/null +++ b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/RequirementProvider.java @@ -0,0 +1,10 @@ +package de.epiceric.shopchest.config.hologram.provider; + +import de.epiceric.shopchest.config.hologram.HologramFormat; + +import java.util.Map; +import java.util.function.Function; + +public interface RequirementProvider extends Function, T> { + +}