package org.mafagafogigante.dungeon.schema.rules; import org.mafagafogigante.dungeon.schema.JsonRule; import java.util.List; import java.util.Map; public final class JsonRuleFactory { private JsonRuleFactory() { // Ensure that this class cannot be instantiated. throw new AssertionError(); } public static JsonRule makeObjectRule(Map<String, JsonRule> rules) { return new ObjectJsonRule(rules); } public static JsonRule makeStringRule() { return new StringJsonRule(); } public static JsonRule makeIntegerRule() { return new IntegerJsonRule(); } public static JsonRule makeBooleanRule() { return new BooleanJsonRule(); } public static JsonRule makeStringLengthRule(int stringLength) { return new StringLengthJsonRule(stringLength); } public static JsonRule makeFixedArrayRule(List<JsonRule> rules) { return new FixedArrayJsonRule(rules); } public static JsonRule makeVariableArrayRule(JsonRule rule) { return new VariableArrayJsonRule(rule); } public static JsonRule makePercentRule() { return new PercentageJsonRule(); } public static JsonRule makeBoundIntegerRule(int minimumValue, int maximumValue) { return new BoundIntegerJsonRule(minimumValue, maximumValue); } public static JsonRule makeBoundDoubleRule(double minimumValue, double maximumValue) { return new BoundDoubleJsonRule(minimumValue, maximumValue); } public static JsonRule makeArraySizeRule(int arraySize) { return new ArraySizeJsonRule(arraySize); } public static JsonRule makeUppercaseStringRule() { return new UppercaseStringJsonRule(); } public static JsonRule makeIdRule() { return new IdJsonRule(); } public static JsonRule makeGroupRule(JsonRule... jsonRules) { return new GroupJsonRule(jsonRules); } public static JsonRule makeOptionalRule(JsonRule jsonRule) { return new OptionalJsonRule(jsonRule); } public static JsonRule makePeriodRule() { return new PeriodJsonRule(); } }