Interface FlagRegistry

All Superinterfaces:
Iterable<Flag<?>>
All Known Implementing Classes:
SimpleFlagRegistry

public interface FlagRegistry extends Iterable<Flag<?>>
Keeps track of registered flags.
  • Method Details

    • register

      void register(Flag<?> flag) throws FlagConflictException
      Register a new flag.

      There may be an appropriate time to register flags. If flags are registered outside this time, then an exception may be thrown.

      Parameters:
      flag - The flag
      Throws:
      FlagConflictException - Thrown when an existing flag exists with the same name
      IllegalStateException - If it is not the right time to register new flags
    • registerAll

      void registerAll(Collection<Flag<?>> flags)
      Register a collection of flags.

      There may be an appropriate time to register flags. If flags are registered outside this time, then an exception may be thrown.

      If there is a flag conflict, then an error will be logged but no exception will be thrown.

      Parameters:
      flags - a collection of flags
      Throws:
      IllegalStateException - If it is not the right time to register new flags
    • get

      @Nullable Flag<?> get(String name)
      Get af flag by its name.
      Parameters:
      name - The name
      Returns:
      The flag, if it has been registered
    • getAll

      List<Flag<?>> getAll()
      Get all flags
      Returns:
      All flags
    • unmarshal

      Map<Flag<?>,Object> unmarshal(Map<String,Object> rawValues, boolean createUnknown)
      Unmarshal a raw map of values into a map of flags with their unmarshalled values.
      Parameters:
      rawValues - The raw values map
      createUnknown - Whether "just in time" flags should be created for unknown flags
      Returns:
      The unmarshalled flag values map
    • size

      int size()
      Get the number of registered flags.
      Returns:
      The number of registered flags