code: private static synchronized void initDEVTESTPROD() {
      if (IS_DEV != null)
        return;
      IS_DEV = false;
      IS_TEST = false;
      IS_PROD = false;
      final List<String> envs = singletonInstance.getSearchEnvironments();
      for (final String env : envs) {
        if (env.equalsIgnoreCase("DEV")) {
          IS_DEV = true;
        }
      }
      for (final String env : envs) {
        if (env.equalsIgnoreCase("TEST")) {
          IS_DEV = false;
          IS_TEST = true;
        }
      }
      for (final String env : envs) {
        if (env.equalsIgnoreCase("PROD")) {
          IS_DEV = false;
          IS_TEST = false;
          IS_PROD = true;
        }
      }
  
    }
docs: Called the first time {@link #isDEV()}, {@link #isTEST()} or
  {@link #isPROD()} is called, to cache the values. NOT called during static
  init because we want to support early-stage code reseting the environment
  if needed.