void init()

in legacy/java/piranha/src/main/java/com/uber/piranha/XPFlagCleaner.java [231:266]


  void init(ErrorProneFlags flags) throws PiranhaConfigurationException {
    Optional<String> s = flags.get("Piranha:FlagName");
    Optional<String> f = flags.get("Piranha:Config");
    if (!s.isPresent()
        && !f.isPresent()
        && flags.getBoolean("Piranha:DisabledUnlessConfigured").orElse(false)
        && !flags.getBoolean("Piranha:IsTreated").isPresent()
        && !flags.getBoolean("Piranha:TreatmentGroup").isPresent()
        && this.defaultSeverity().equals(SUGGESTION)) {
      // No configuration present at all, disable Piranha checker
      disabled = true;
      this.config = Config.emptyConfig();
      return;
    }

    if (s.isPresent()) {
      if (!EMPTY.equals(s.get().trim())) xpFlagName = s.get();
      isTreated = flags.getBoolean("Piranha:IsTreated").orElse(true);
      treatmentGroup = flags.get("Piranha:TreatmentGroup").orElse("").toLowerCase();
    } else {
      throw new PiranhaConfigurationException("Piranha:FlagName is missing");
    }

    if (f.isPresent()) {
      String configFile = f.get();
      Optional<String> argumentIndexOptional = flags.get("Piranha:ArgumentIndexOptional");
      boolean isArgumentIndexOptional = false;
      if (argumentIndexOptional.isPresent() && TRUE.equalsIgnoreCase(argumentIndexOptional.get())) {
        isArgumentIndexOptional = true;
      }
      this.config = Config.fromJSONFile(configFile, isArgumentIndexOptional);
    } else {
      throw new PiranhaConfigurationException("Piranha:Config is missing");
    }
    initialized = true;
  }