diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/calculation/Calculation.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/calculation/Calculation.java index 692bc89..5195bd1 100644 --- a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/calculation/Calculation.java +++ b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/calculation/Calculation.java @@ -1,26 +1,23 @@ package de.epiceric.shopchest.config.hologram.calculation; -import de.epiceric.shopchest.config.hologram.HologramFormat; - -import java.util.Map; import java.util.Objects; import java.util.function.Function; /** * Represents a hologram calculation */ -public interface Calculation { +public interface Calculation

{ - double calculate(Map provider); + double calculate(P provider); - abstract class AbstractCalculation implements Calculation { + abstract class AbstractCalculation

implements Calculation

{ - protected final Function, Double> firstArgProvider; - protected final Function, Double> secondArgProvider; + protected final Function firstArgProvider; + protected final Function secondArgProvider; public AbstractCalculation( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { this.firstArgProvider = firstArgProvider; this.secondArgProvider = secondArgProvider; @@ -30,7 +27,7 @@ public interface Calculation { public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - AbstractCalculation that = (AbstractCalculation) o; + AbstractCalculation that = (AbstractCalculation) o; return Objects.equals(firstArgProvider, that.firstArgProvider) && Objects.equals(secondArgProvider, that.secondArgProvider); } @@ -41,18 +38,18 @@ public interface Calculation { } - class Addition extends AbstractCalculation { + class Addition

extends AbstractCalculation

{ public Addition( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public double calculate(Map requirementValues) { - return this.firstArgProvider.apply(requirementValues) + secondArgProvider.apply(requirementValues); + public double calculate(P values) { + return this.firstArgProvider.apply(values) + secondArgProvider.apply(values); } @Override @@ -61,18 +58,18 @@ public interface Calculation { } } - class Subtraction extends AbstractCalculation { + class Subtraction

extends AbstractCalculation

{ public Subtraction( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public double calculate(Map requirementValues) { - return this.firstArgProvider.apply(requirementValues) - secondArgProvider.apply(requirementValues); + public double calculate(P values) { + return this.firstArgProvider.apply(values) - secondArgProvider.apply(values); } @Override @@ -81,18 +78,18 @@ public interface Calculation { } } - class Multiplication extends AbstractCalculation { + class Multiplication

extends AbstractCalculation

{ public Multiplication( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public double calculate(Map requirementValues) { - return this.firstArgProvider.apply(requirementValues) * secondArgProvider.apply(requirementValues); + public double calculate(P values) { + return this.firstArgProvider.apply(values) * secondArgProvider.apply(values); } @Override @@ -101,18 +98,18 @@ public interface Calculation { } } - class Division extends AbstractCalculation { + class Division

extends AbstractCalculation

{ public Division( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public double calculate(Map requirementValues) { - return this.firstArgProvider.apply(requirementValues) / secondArgProvider.apply(requirementValues); + public double calculate(P values) { + return this.firstArgProvider.apply(values) / secondArgProvider.apply(values); } @Override @@ -121,18 +118,18 @@ public interface Calculation { } } - class Modulo extends AbstractCalculation { + class Modulo

extends AbstractCalculation

{ public Modulo( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public double calculate(Map requirementValues) { - return this.firstArgProvider.apply(requirementValues) % secondArgProvider.apply(requirementValues); + public double calculate(P values) { + return this.firstArgProvider.apply(values) % secondArgProvider.apply(values); } @Override diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/AbstractEqualityCondition.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/AbstractEqualityCondition.java index bdc81d5..13ed9c8 100644 --- a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/AbstractEqualityCondition.java +++ b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/AbstractEqualityCondition.java @@ -1,19 +1,16 @@ package de.epiceric.shopchest.config.hologram.condition; -import de.epiceric.shopchest.config.hologram.HologramFormat; - -import java.util.Map; import java.util.Objects; import java.util.function.Function; -public abstract class AbstractEqualityCondition implements Condition { +public abstract class AbstractEqualityCondition implements Condition

{ - protected final Function, T> firstArgProvider; - protected final Function, T> secondArgProvider; + protected final Function firstArgProvider; + protected final Function secondArgProvider; public AbstractEqualityCondition( - Function, T> firstArgProvider, - Function, T> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { this.firstArgProvider = firstArgProvider; this.secondArgProvider = secondArgProvider; @@ -23,7 +20,7 @@ public abstract class AbstractEqualityCondition implements Condition { public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - AbstractEqualityCondition that = (AbstractEqualityCondition) o; + AbstractEqualityCondition that = (AbstractEqualityCondition) o; return Objects.equals(firstArgProvider, that.firstArgProvider) && Objects.equals(secondArgProvider, that.secondArgProvider); } @@ -32,18 +29,18 @@ public abstract class AbstractEqualityCondition implements Condition { return Objects.hash(firstArgProvider, secondArgProvider); } - public static class EqualityCondition extends AbstractEqualityCondition { + public static class EqualityCondition extends AbstractEqualityCondition { public EqualityCondition( - Function, T> firstArgProvider, - Function, T> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public boolean test(Map requirementValues) { - return Objects.equals(firstArgProvider.apply(requirementValues), secondArgProvider.apply(requirementValues)); + public boolean test(P values) { + return Objects.equals(firstArgProvider.apply(values), secondArgProvider.apply(values)); } @Override @@ -53,18 +50,18 @@ public abstract class AbstractEqualityCondition implements Condition { } - public static class InequalityCondition extends AbstractEqualityCondition { + public static class InequalityCondition extends AbstractEqualityCondition { public InequalityCondition( - Function, T> firstArgProvider, - Function, T> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public boolean test(Map requirementValues) { - return !Objects.equals(firstArgProvider.apply(requirementValues), secondArgProvider.apply(requirementValues)); + public boolean test(P values) { + return !Objects.equals(firstArgProvider.apply(values), secondArgProvider.apply(values)); } @Override diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/AndCondition.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/AndCondition.java deleted file mode 100644 index f790867..0000000 --- a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/AndCondition.java +++ /dev/null @@ -1,40 +0,0 @@ -package de.epiceric.shopchest.config.hologram.condition; - -import de.epiceric.shopchest.config.hologram.HologramFormat; - -import java.util.Map; -import java.util.Objects; - -public class AndCondition implements Condition { - - private final Condition firstCondition; - private final Condition secondCondition; - - public AndCondition(Condition firstCondition, Condition secondCondition) { - this.firstCondition = firstCondition; - this.secondCondition = secondCondition; - } - - @Override - public boolean test(Map requirementValues) { - return firstCondition.test(requirementValues) && secondCondition.test(requirementValues); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - AndCondition that = (AndCondition) o; - return Objects.equals(firstCondition, that.firstCondition) && Objects.equals(secondCondition, that.secondCondition); - } - - @Override - public int hashCode() { - return Objects.hash(firstCondition, secondCondition); - } - - @Override - public String toString() { - return "(" + firstCondition.toString() + " && " + secondCondition.toString() + ")"; - } -} diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/BooleanCondition.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/BooleanCondition.java index 8cf6e21..bb1ef94 100644 --- a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/BooleanCondition.java +++ b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/BooleanCondition.java @@ -1,29 +1,26 @@ package de.epiceric.shopchest.config.hologram.condition; -import de.epiceric.shopchest.config.hologram.HologramFormat; - -import java.util.Map; import java.util.Objects; import java.util.function.Function; -public class BooleanCondition implements Condition { +public class BooleanCondition

implements Condition

{ - private final Function, Boolean> booleanProvider; + private final Function booleanProvider; - public BooleanCondition(Function, Boolean> booleanProvider) { + public BooleanCondition(Function booleanProvider) { this.booleanProvider = booleanProvider; } @Override - public boolean test(Map requirementValues) { - return booleanProvider.apply(requirementValues); + public boolean test(P values) { + return booleanProvider.apply(values); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - BooleanCondition that = (BooleanCondition) o; + BooleanCondition that = (BooleanCondition) o; return Objects.equals(booleanProvider, that.booleanProvider); } diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/ComparisonCondition.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/ComparisonCondition.java index 79eba46..e359308 100644 --- a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/ComparisonCondition.java +++ b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/ComparisonCondition.java @@ -1,19 +1,16 @@ package de.epiceric.shopchest.config.hologram.condition; -import de.epiceric.shopchest.config.hologram.HologramFormat; - -import java.util.Map; import java.util.Objects; import java.util.function.Function; -public abstract class ComparisonCondition implements Condition { +public abstract class ComparisonCondition

implements Condition

{ - protected final Function, Double> firstArgProvider; - protected final Function, Double> secondArgProvider; + protected final Function firstArgProvider; + protected final Function secondArgProvider; public ComparisonCondition( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { this.firstArgProvider = firstArgProvider; this.secondArgProvider = secondArgProvider; @@ -23,7 +20,7 @@ public abstract class ComparisonCondition implements Condition { public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - ComparisonCondition that = (ComparisonCondition) o; + ComparisonCondition that = (ComparisonCondition) o; return Objects.equals(firstArgProvider, that.firstArgProvider) && Objects.equals(secondArgProvider, that.secondArgProvider); } @@ -32,18 +29,18 @@ public abstract class ComparisonCondition implements Condition { return Objects.hash(firstArgProvider, secondArgProvider); } - public static class GreaterCondition extends ComparisonCondition { + public static class GreaterCondition

extends ComparisonCondition

{ public GreaterCondition( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public boolean test(Map requirementValues) { - return firstArgProvider.apply(requirementValues) > secondArgProvider.apply(requirementValues); + public boolean test(P values) { + return firstArgProvider.apply(values) > secondArgProvider.apply(values); } @Override @@ -53,18 +50,18 @@ public abstract class ComparisonCondition implements Condition { } - public static class LessCondition extends ComparisonCondition { + public static class LessCondition

extends ComparisonCondition

{ public LessCondition( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public boolean test(Map requirementValues) { - return firstArgProvider.apply(requirementValues) < secondArgProvider.apply(requirementValues); + public boolean test(P values) { + return firstArgProvider.apply(values) < secondArgProvider.apply(values); } @Override @@ -74,18 +71,18 @@ public abstract class ComparisonCondition implements Condition { } - public static class GreaterOrEqualCondition extends ComparisonCondition { + public static class GreaterOrEqualCondition

extends ComparisonCondition

{ public GreaterOrEqualCondition( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public boolean test(Map requirementValues) { - return firstArgProvider.apply(requirementValues) >= secondArgProvider.apply(requirementValues); + public boolean test(P values) { + return firstArgProvider.apply(values) >= secondArgProvider.apply(values); } @Override @@ -95,18 +92,18 @@ public abstract class ComparisonCondition implements Condition { } - public static class LessOrEqualCondition extends ComparisonCondition { + public static class LessOrEqualCondition

extends ComparisonCondition

{ public LessOrEqualCondition( - Function, Double> firstArgProvider, - Function, Double> secondArgProvider + Function firstArgProvider, + Function secondArgProvider ) { super(firstArgProvider, secondArgProvider); } @Override - public boolean test(Map requirementValues) { - return firstArgProvider.apply(requirementValues) <= secondArgProvider.apply(requirementValues); + public boolean test(P values) { + return firstArgProvider.apply(values) <= secondArgProvider.apply(values); } @Override diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/Condition.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/Condition.java index c43dae0..85abfdd 100644 --- a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/Condition.java +++ b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/Condition.java @@ -1,13 +1,10 @@ package de.epiceric.shopchest.config.hologram.condition; -import de.epiceric.shopchest.config.hologram.HologramFormat; - -import java.util.Map; import java.util.function.Predicate; /** * Represents a hologram requirement condition */ -public interface Condition extends Predicate> { +public interface Condition

extends Predicate

{ } diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/LogicCondition.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/LogicCondition.java new file mode 100644 index 0000000..c7dabf6 --- /dev/null +++ b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/LogicCondition.java @@ -0,0 +1,62 @@ +package de.epiceric.shopchest.config.hologram.condition; + +import java.util.Objects; + +public abstract class LogicCondition

implements Condition

{ + + protected final Condition

firstCondition; + protected final Condition

secondCondition; + + public LogicCondition(Condition

firstCondition, Condition

secondCondition) { + this.firstCondition = firstCondition; + this.secondCondition = secondCondition; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + LogicCondition that = (LogicCondition) o; + return Objects.equals(firstCondition, that.firstCondition) && Objects.equals(secondCondition, that.secondCondition); + } + + @Override + public int hashCode() { + return Objects.hash(firstCondition, secondCondition); + } + + public final static class AndCondition

extends LogicCondition

{ + + public AndCondition(Condition

firstCondition, Condition

secondCondition) { + super(firstCondition, secondCondition); + } + + @Override + public boolean test(P values) { + return firstCondition.test(values) && secondCondition.test(values); + } + + @Override + public String toString() { + return "(" + firstCondition.toString() + " && " + secondCondition.toString() + ")"; + } + } + + public final static class OrCondition

extends LogicCondition

{ + + public OrCondition(Condition

firstCondition, Condition

secondCondition) { + super(firstCondition, secondCondition); + } + + @Override + public boolean test(P values) { + return firstCondition.test(values) || secondCondition.test(values); + } + + @Override + public String toString() { + return "(" + firstCondition.toString() + " || " + secondCondition.toString() + ")"; + } + } + +} diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/OrCondition.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/OrCondition.java deleted file mode 100644 index e315a18..0000000 --- a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/OrCondition.java +++ /dev/null @@ -1,40 +0,0 @@ -package de.epiceric.shopchest.config.hologram.condition; - -import de.epiceric.shopchest.config.hologram.HologramFormat; - -import java.util.Map; -import java.util.Objects; - -public class OrCondition implements Condition { - - private final Condition firstCondition; - private final Condition secondCondition; - - public OrCondition(Condition firstCondition, Condition secondCondition) { - this.firstCondition = firstCondition; - this.secondCondition = secondCondition; - } - - @Override - public boolean test(Map requirementValues) { - return firstCondition.test(requirementValues) || secondCondition.test(requirementValues); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - OrCondition that = (OrCondition) o; - return Objects.equals(firstCondition, that.firstCondition) && Objects.equals(secondCondition, that.secondCondition); - } - - @Override - public int hashCode() { - return Objects.hash(firstCondition, secondCondition); - } - - @Override - public String toString() { - return "(" + firstCondition.toString() + " || " + secondCondition.toString() + ")"; - } -} diff --git a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/ReverseCondition.java b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/ReverseCondition.java index c1d9c69..211309e 100644 --- a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/ReverseCondition.java +++ b/plugin/src/main/java/de/epiceric/shopchest/config/hologram/condition/ReverseCondition.java @@ -1,28 +1,25 @@ package de.epiceric.shopchest.config.hologram.condition; -import de.epiceric.shopchest.config.hologram.HologramFormat; - -import java.util.Map; import java.util.Objects; -public class ReverseCondition implements Condition { +public class ReverseCondition

implements Condition

{ - private final Condition condition; + private final Condition

condition; - public ReverseCondition(Condition condition) { + public ReverseCondition(Condition

condition) { this.condition = condition; } @Override - public boolean test(Map requirementValues) { - return !condition.test(requirementValues); + public boolean test(P values) { + return !condition.test(values); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - ReverseCondition that = (ReverseCondition) o; + ReverseCondition that = (ReverseCondition) o; return Objects.equals(condition, that.condition); } 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 index c7a2f9a..d057dd1 100644 --- 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 @@ -1,11 +1,9 @@ package de.epiceric.shopchest.config.hologram.provider; -import de.epiceric.shopchest.config.hologram.HologramFormat; - -import java.util.Map; import java.util.Objects; +import java.util.function.Function; -public class ConstantProvider implements RequirementProvider { +public class ConstantProvider implements Function { private final T constant; @@ -15,7 +13,7 @@ public class ConstantProvider implements RequirementProvider { @Override - public T apply(Map requirementObjectMap) { + public T apply(P values) { return constant; } @@ -23,7 +21,7 @@ public class ConstantProvider implements RequirementProvider { public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - ConstantProvider that = (ConstantProvider) o; + ConstantProvider that = (ConstantProvider) o; return Objects.equals(constant, that.constant); } 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 index 25b0af5..b11f62b 100644 --- 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 @@ -1,15 +1,14 @@ package de.epiceric.shopchest.config.hologram.provider; -import de.epiceric.shopchest.config.hologram.HologramFormat; - import java.util.Map; import java.util.Objects; +import java.util.function.Function; -public abstract class MapProvider implements RequirementProvider { +public abstract class MapProvider implements Function, T> { - protected final HologramFormat.Requirement requirement; + protected final P requirement; - public MapProvider(HologramFormat.Requirement requirement) { + public MapProvider(P requirement) { this.requirement = requirement; } @@ -17,7 +16,7 @@ public abstract class MapProvider implements RequirementProvider { public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - MapProvider that = (MapProvider) o; + MapProvider that = (MapProvider) o; return requirement == that.requirement; } @@ -31,41 +30,41 @@ public abstract class MapProvider implements RequirementProvider { return requirement.toString(); } - public final static class StringMapProvider extends MapProvider { + public final static class StringMapProvider

extends MapProvider { - public StringMapProvider(HologramFormat.Requirement requirement) { + public StringMapProvider(P requirement) { super(requirement); } @Override - public String apply(Map requirementValues) { - return (String) requirementValues.get(requirement); + public String apply(Map values) { + return (String) values.get(requirement); } } - public final static class BooleanMapProvider extends MapProvider { + public final static class BooleanMapProvider

extends MapProvider { - public BooleanMapProvider(HologramFormat.Requirement requirement) { + public BooleanMapProvider(P requirement) { super(requirement); } @Override - public Boolean apply(Map requirementValues) { - return (Boolean) requirementValues.get(requirement); + public Boolean apply(Map values) { + return (Boolean) values.get(requirement); } } - public final static class DoubleMapProvider extends MapProvider { + public final static class DoubleMapProvider

extends MapProvider { - public DoubleMapProvider(HologramFormat.Requirement requirement) { + public DoubleMapProvider(P requirement) { super(requirement); } @Override - public Double apply(Map requirementValues) { - return (Double) requirementValues.get(requirement); + public Double apply(Map values) { + return (Double) values.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 deleted file mode 100644 index 66ffe49..0000000 --- a/plugin/src/main/java/de/epiceric/shopchest/config/hologram/provider/RequirementProvider.java +++ /dev/null @@ -1,10 +0,0 @@ -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> { - -}