Interface ModeInterference

All Known Implementing Classes:
ApplyingAndSuppressingOrRemoveUnusedInterference, DisableModeInterference, RemoveRolloutAndSuppressingInterference, SpecificModeInterference

public interface ModeInterference
Modes can interfere with each other, for example, removing and suppressing are mutually exclusive. Each of these provide a way to indicate which ModeNames interfere with each other and modify the CommonOptions they produce in order to work properly together.
  • Method Details

    • interferesWith

      ModeInterferenceResult interferesWith(Set<ModeName> modeNames)
      Identify which of the flags interfere with each other.
      Parameters:
      modeNames - The flags that are enabled in this run
      Returns:
      Either no interference, the flags that interfere with each other, or why they are incompatible
    • interfere

      default CommonOptions interfere(Map<ModeName, CommonOptions> modeCommonOptions)
      Modify the modeCommonOptions if the flags interfere with each other.
      Parameters:
      modeCommonOptions - A map from the ModeNames that were indicated to be interfering in interferesWith(Set) to their corresponding CommonOptions.
      Returns:
      The modified CommonOptions that will be used in place of the originals that the flags produced