Interface IConfigCategoryBuilder

All Superinterfaces:
IConfigEditorCategoryBuilder

@NonExtendable public interface IConfigCategoryBuilder extends IConfigEditorCategoryBuilder
Declares the settings stored in one config category.

Get an instance from IConfigSchemaBuilder.addCategory(String). Prefer the built-in methods for common value types. Use addValue(String, Object, IConfigValueSerializer) for a mod-specific type and addList(String, List, IConfigValueSerializer) for a list of mod-specific elements. Each method returns a value builder for optional behavior such as restart requirements; call IConfigValueBuilder.build() to add that value to the category.

Since:
0.1.0
  • Method Details

    • addBoolean

      IConfigValueBuilder<Boolean> addBoolean(String name, boolean defaultValue)
      Create a builder for a boolean config value.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addBooleanList

      IConfigValueBuilder<List<Boolean>> addBooleanList(String name, List<Boolean> defaultValue)
      Create a builder for a list config value containing booleans.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addString

      IConfigValueBuilder<String> addString(String name, String defaultValue)
      Create a builder for a string config value.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addStringList

      IConfigValueBuilder<List<String>> addStringList(String name, List<String> defaultValue)
      Create a builder for a list config value containing strings.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addInteger

      IConfigValueBuilder<Integer> addInteger(String name, int defaultValue)
      Create a builder for an integer config value.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addInteger

      IConfigValueBuilder<Integer> addInteger(String name, int defaultValue, int minValue, int maxValue)
      Create a builder for a bounded integer config value.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      minValue - smallest valid value
      maxValue - largest valid value
      Since:
      0.1.0
    • addIntegerList

      IConfigValueBuilder<List<Integer>> addIntegerList(String name, List<Integer> defaultValue)
      Create a builder for a list config value containing integers.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addIntegerList

      IConfigValueBuilder<List<Integer>> addIntegerList(String name, List<Integer> defaultValue, int minValue, int maxValue)
      Create a builder for a list config value containing bounded integers.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      minValue - smallest valid value
      maxValue - largest valid value
      Since:
      0.1.0
    • addColor

      IConfigValueBuilder<PackedColor> addColor(String name, PackedColor defaultValue)
      Create a builder for an RGB or ARGB color config value serialized as 0xRRGGBB or 0xAARRGGBB.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addColorList

      IConfigValueBuilder<List<PackedColor>> addColorList(String name, List<PackedColor> defaultValue)
      Create a builder for a list config value containing RGB or ARGB colors serialized as 0xRRGGBB or 0xAARRGGBB.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addLong

      IConfigValueBuilder<Long> addLong(String name, long defaultValue)
      Create a builder for a long config value.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addLong

      IConfigValueBuilder<Long> addLong(String name, long defaultValue, long minValue, long maxValue)
      Create a builder for a bounded long config value.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      minValue - smallest valid value
      maxValue - largest valid value
      Since:
      0.1.0
    • addLongList

      IConfigValueBuilder<List<Long>> addLongList(String name, List<Long> defaultValue)
      Create a builder for a list config value containing longs.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addLongList

      IConfigValueBuilder<List<Long>> addLongList(String name, List<Long> defaultValue, long minValue, long maxValue)
      Create a builder for a list config value containing bounded longs.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      minValue - smallest valid value
      maxValue - largest valid value
      Since:
      0.1.0
    • addDouble

      IConfigValueBuilder<Double> addDouble(String name, double defaultValue)
      Create a builder for a finite double config value.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addDouble

      IConfigValueBuilder<Double> addDouble(String name, double defaultValue, double minValue, double maxValue)
      Create a builder for a bounded finite double config value.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      minValue - smallest valid value
      maxValue - largest valid value
      Since:
      0.1.0
    • addDoubleList

      IConfigValueBuilder<List<Double>> addDoubleList(String name, List<Double> defaultValue)
      Create a builder for a list config value containing finite doubles.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addDoubleList

      IConfigValueBuilder<List<Double>> addDoubleList(String name, List<Double> defaultValue, double minValue, double maxValue)
      Create a builder for a list config value containing bounded finite doubles.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      minValue - smallest valid value
      maxValue - largest valid value
      Since:
      0.1.0
    • addEnum

      <T extends Enum<T>> IConfigValueBuilder<T> addEnum(String name, T defaultValue)
      Create a builder for an enum config value.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      Since:
      0.1.0
    • addEnum

      <T extends Enum<T>> IConfigValueBuilder<T> addEnum(String name, T defaultValue, List<T> validValues)
      Create a builder for an enum config value with a restricted set of valid values.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      validValues - non-empty list of valid enum values
      Since:
      0.1.0
    • addEnumList

      <T extends Enum<T>> IConfigValueBuilder<List<T>> addEnumList(String name, List<T> defaultValue, Class<T> enumClass)
      Create a builder for a list config value containing enum values.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      enumClass - enum class for serializing and validating list values
      Since:
      0.1.0
    • addEnumList

      <T extends Enum<T>> IConfigValueBuilder<List<T>> addEnumList(String name, List<T> defaultValue, List<T> validValues)
      Create a builder for a list config value containing enum values with a restricted set of valid values.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      validValues - non-empty list of valid enum values
      Since:
      0.1.0
    • addValue

      <T> IConfigValueBuilder<T> addValue(String name, T defaultValue, IConfigValueSerializer<T> serializer)
      Create a builder for a config value with a custom serializer. Use this method with an IConfigListValueSerializer for custom list validation and editor metadata. The value type must be effectively immutable with stable equality.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      serializer - serializer for reading, writing, and validation
      Since:
      0.1.0
    • addList

      <T> IConfigValueBuilder<List<T>> addList(String name, List<T> defaultValue, IConfigValueSerializer<T> elementSerializer)
      Create a builder for a list config value using a serializer for each list element.

      The resulting config value's serializer implements IConfigListValueSerializer, so callers can inspect the element serializer.

      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      elementSerializer - serializer for each list element
      Since:
      0.1.0
    • addList

      <T> IConfigValueBuilder<List<T>> addList(String name, List<T> defaultValue, IConfigValueSerializer<T> elementSerializer, ConfigListOrdering ordering)
      Create a builder for a list config value using a serializer for each list element and explicit ordering semantics.
      Parameters:
      name - stable storage name for the value
      defaultValue - default value
      elementSerializer - serializer for each list element
      ordering - whether entry order changes the meaning of the value
      Since:
      0.1.0