diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/AConfigField.java b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/AConfigField.java index c4ae02d..49902ca 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/AConfigField.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/AConfigField.java @@ -46,6 +46,16 @@ public abstract class AConfigField { protected final String comment; private boolean uninitialized; + public static RuntimeException noDefault(Field field, String annotation) { + return new RuntimeException("The field " + + field.getName() + + " in class " + + field.getDeclaringClass().getName() + + " has no " + + annotation + + " annotation!"); + } + protected AConfigField(Field field, Configuration configuration, String category, Property.Type type) { this(field, configuration, category, type, false); } diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/BooleanConfigField.java b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/BooleanConfigField.java index 8b60e4c..248c131 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/BooleanConfigField.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/BooleanConfigField.java @@ -43,19 +43,7 @@ public class BooleanConfigField extends AConfigField { primitive = field.getType().isPrimitive(); defaultValue = Optional.ofNullable(field.getAnnotation(Config.DefaultBoolean.class)) .map(Config.DefaultBoolean::value) - .orElseGet(() -> { - Share.LOG.warn("The field " - + field.getName() - + " in class " - + field.getDeclaringClass().getName() - + " has no DefaultBoolean annotation!\nThis will be a crash in FalsePatternLib 0.11, update your code!"); - try { - return field.getType().isPrimitive() ? field.getBoolean(null) - : (Boolean) field.get(null); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }); + .orElseThrow(() -> noDefault(field, "DefaultBoolean")); property.setDefaultValue(defaultValue); if (!property.isBooleanValue()) { setToDefault(); diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/BooleanListConfigField.java b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/BooleanListConfigField.java index 87cc173..78992a2 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/BooleanListConfigField.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/BooleanListConfigField.java @@ -42,18 +42,7 @@ public class BooleanListConfigField extends AListConfigField { super(field, configuration, category, Property.Type.BOOLEAN); defaultValue = Optional.ofNullable(field.getAnnotation(Config.DefaultBooleanList.class)) .map(Config.DefaultBooleanList::value) - .orElseGet(() -> { - Share.LOG.warn("The field " - + field.getName() - + " in class " - + field.getDeclaringClass().getName() - + " has no DefaultBooleanList annotation!\nThis will be a crash in FalsePatternLib 0.11, update your code!"); - try { - return (boolean[]) field.get(null); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }); + .orElseThrow(() -> noDefault(field, "DefaultBooleanList")); property.setDefaultValues(defaultValue); if (!property.isBooleanList()) { setToDefault(); diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/DoubleConfigField.java b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/DoubleConfigField.java index e03028a..b2ed798 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/DoubleConfigField.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/DoubleConfigField.java @@ -49,19 +49,7 @@ public class DoubleConfigField extends AConfigField { max = range.map(Config.RangeDouble::max).orElse(Double.MAX_VALUE); defaultValue = Optional.ofNullable(field.getAnnotation(Config.DefaultDouble.class)) .map(Config.DefaultDouble::value) - .orElseGet(() -> { - Share.LOG.warn("The field " - + field.getName() - + " in class " - + field.getDeclaringClass().getName() - + " has no DefaultDouble annotation!\nThis will be a crash in FalsePatternLib 0.11, update your code!"); - try { - return field.getType().isPrimitive() ? field.getInt(null) - : (Double) field.get(null); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }); + .orElseThrow(() -> noDefault(field, "DefaultDouble")); property.setDefaultValue(defaultValue); property.setMinValue(min); property.setMaxValue(max); diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/DoubleListConfigField.java b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/DoubleListConfigField.java index 2c460a0..61075b9 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/DoubleListConfigField.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/DoubleListConfigField.java @@ -48,18 +48,7 @@ public class DoubleListConfigField extends AListConfigField { max = range.map(Config.RangeDouble::max).orElse(Double.MAX_VALUE); defaultValue = Optional.ofNullable(field.getAnnotation(Config.DefaultDoubleList.class)) .map(Config.DefaultDoubleList::value) - .orElseGet(() -> { - Share.LOG.warn("The field " - + field.getName() - + " in class " - + field.getDeclaringClass().getName() - + " has no DefaultDoubleList annotation!\nThis will be a crash in FalsePatternLib 0.11, update your code!"); - try { - return (double[]) field.get(null); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }); + .orElseThrow(() -> noDefault(field, "DefaultDoubleList")); property.setDefaultValues(defaultValue); property.setMinValue(min); property.setMaxValue(max); diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/EnumConfigField.java b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/EnumConfigField.java index 29b41ce..20581fe 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/EnumConfigField.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/EnumConfigField.java @@ -62,18 +62,7 @@ public class EnumConfigField> extends AConfigField { + defName + "\" was not found in enum " + enumClass.getName()))) - .orElseGet(() -> { - Share.LOG.warn("The field " - + field.getName() - + " in class " - + field.getDeclaringClass().getName() - + " has no DefaultEnum annotation!\nThis will be a crash in FalsePatternLib 0.11, update your code!"); - try { - return enumClass.cast(field.get(null)); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }); + .orElseThrow(() -> noDefault(field, "DefaultEnum")); maxLength = enumNameMap.keySet().stream().mapToInt(String::length).max().orElse(0); property.setDefaultValue(defaultValue.name()); property.setValidValues(enumNameMap.keySet().toArray(new String[0])); diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/IntConfigField.java b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/IntConfigField.java index 48f625f..7ad27e2 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/IntConfigField.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/IntConfigField.java @@ -49,19 +49,7 @@ public class IntConfigField extends AConfigField { max = range.map(Config.RangeInt::max).orElse(Integer.MAX_VALUE); defaultValue = Optional.ofNullable(field.getAnnotation(Config.DefaultInt.class)) .map(Config.DefaultInt::value) - .orElseGet(() -> { - Share.LOG.warn("The field " - + field.getName() - + " in class " - + field.getDeclaringClass().getName() - + " has no DefaultInt annotation!\nThis will be a crash in FalsePatternLib 0.11, update your code!"); - try { - return field.getType().isPrimitive() ? field.getInt(null) - : (Integer) field.get(null); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }); + .orElseThrow(() -> noDefault(field, "DefaultInt")); property.setDefaultValue(defaultValue); property.setMinValue(min); property.setMaxValue(max); diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/IntListConfigField.java b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/IntListConfigField.java index 112628a..3851bb5 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/IntListConfigField.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/IntListConfigField.java @@ -48,18 +48,7 @@ public class IntListConfigField extends AListConfigField { max = range.map(Config.RangeInt::max).orElse(Integer.MAX_VALUE); defaultValue = Optional.ofNullable(field.getAnnotation(Config.DefaultIntList.class)) .map(Config.DefaultIntList::value) - .orElseGet(() -> { - Share.LOG.warn("The field " - + field.getName() - + " in class " - + field.getDeclaringClass().getName() - + " has no DefaultIntList annotation!\nThis will be a crash in FalsePatternLib 0.11, update your code!"); - try { - return (int[]) field.get(null); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }); + .orElseThrow(() -> noDefault(field, "DefaultIntList")); property.setDefaultValues(defaultValue); property.setMinValue(min); property.setMaxValue(max); diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/StringConfigField.java b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/StringConfigField.java index d5fb021..9259a77 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/StringConfigField.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/StringConfigField.java @@ -48,18 +48,7 @@ public class StringConfigField extends AConfigField { .orElse(null); defaultValue = Optional.ofNullable(field.getAnnotation(Config.DefaultString.class)) .map(Config.DefaultString::value) - .orElseGet(() -> { - Share.LOG.warn("The field " - + field.getName() - + " in class " - + field.getDeclaringClass().getName() - + " has no DefaultString annotation!\nThis will be a crash in FalsePatternLib 0.11, update your code!"); - try { - return (String) field.get(null); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }); + .orElseThrow(() -> noDefault(field, "DefaultString")); maxLength = Optional.ofNullable(field.getAnnotation(Config.StringMaxLength.class)) .map(Config.StringMaxLength::value) .orElse(256); diff --git a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/StringListConfigField.java b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/StringListConfigField.java index c2ada52..9eea6b4 100644 --- a/src/main/java/com/falsepattern/lib/internal/impl/config/fields/StringListConfigField.java +++ b/src/main/java/com/falsepattern/lib/internal/impl/config/fields/StringListConfigField.java @@ -48,18 +48,7 @@ public class StringListConfigField extends AListConfigField { .orElse(null); defaultValue = Optional.ofNullable(field.getAnnotation(Config.DefaultStringList.class)) .map(Config.DefaultStringList::value) - .orElseGet(() -> { - Share.LOG.warn("The field " - + field.getName() - + " in class " - + field.getDeclaringClass().getName() - + " has no DefaultStringList annotation!\nThis will be a crash in FalsePatternLib 0.11, update your code!"); - try { - return (String[]) field.get(null); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - }); + .orElseThrow(() -> noDefault(field, "DefaultStringList")); maxStringLength = Optional.ofNullable(field.getAnnotation(Config.StringMaxLength.class)) .map(Config.StringMaxLength::value) .orElse(256);