package com.airlock.iam.oauth2.domain.model;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Arrays;

public enum OAuth2ResponseMode {
   QUERY_STRING("query"),
   FRAGMENT("fragment"),
   FORM_POST("form_post");

   private final String value;

   public static OAuth2ResponseMode fromString(String value) {
      return Arrays.stream(values())
         .filter(e -> e.getValue().equals(value))
         .findAny()
         .orElseThrow(() -> new IllegalArgumentException(String.format("Unsupported response mode: '%s'", value)));
   }

   @SuppressFBWarnings(justification = "generated code")
   OAuth2ResponseMode(final String value) {
      this.value = value;
   }

   @SuppressFBWarnings(justification = "generated code")
   public String getValue() {
      return this.value;
   }
}
