package spdxlicenses

// Code generated by go-spdx cmd/exceptions.go. DO NOT EDIT.
// Source: https://github.com/spdx/license-list-data specifies official SPDX license list.

import "strings"

// IsException does a case-insensitive lookup for the exception id in the exceptions map.
// It returns true and the case-sensitive ID if found, otherwise false and the original id.
func IsException(id string) (bool, string) {
	foundID, ok := exceptionsMap[strings.ToUpper(id)]
	if ok {
		return true, foundID
	}
	return false, id
}

// GetExceptionsMap returns a map of exception license IDs keyed by uppercase ID.
func GetExceptionsMap() map[string]string {
	copied := make(map[string]string, len(exceptionsMap))
	for k, v := range exceptionsMap {
		copied[k] = v
	}
	return copied
}

// GetExceptions returns a slice of exception license IDs.
func GetExceptions() []string {
	return []string{
		"389-exception",
		"Asterisk-exception",
		"Asterisk-linking-protocols-exception",
		"Autoconf-exception-2.0",
		"Autoconf-exception-3.0",
		"Autoconf-exception-generic",
		"Autoconf-exception-generic-3.0",
		"Autoconf-exception-macro",
		"Bison-exception-1.24",
		"Bison-exception-2.2",
		"Bootloader-exception",
		"CGAL-linking-exception",
		"Classpath-exception-2.0",
		"Classpath-exception-2.0-short",
		"CLISP-exception-2.0",
		"cryptsetup-OpenSSL-exception",
		"Digia-Qt-LGPL-exception-1.1",
		"DigiRule-FOSS-exception",
		"eCos-exception-2.0",
		"erlang-otp-linking-exception",
		"Fawkes-Runtime-exception",
		"FLTK-exception",
		"fmt-exception",
		"Font-exception-2.0",
		"freertos-exception-2.0",
		"GCC-exception-2.0",
		"GCC-exception-2.0-note",
		"GCC-exception-3.1",
		"Gmsh-exception",
		"GNAT-exception",
		"GNOME-examples-exception",
		"GNU-compiler-exception",
		"gnu-javamail-exception",
		"Google-Patent-WebM",
		"GPL-3.0-389-ds-base-exception",
		"GPL-3.0-interface-exception",
		"GPL-3.0-linking-exception",
		"GPL-3.0-linking-source-exception",
		"GPL-CC-1.0",
		"GStreamer-exception-2005",
		"GStreamer-exception-2008",
		"harbour-exception",
		"i2p-gpl-java-exception",
		"Independent-modules-exception",
		"KiCad-libraries-exception",
		"kvirc-openssl-exception",
		"LGPL-3.0-linking-exception",
		"libpri-OpenH323-exception",
		"Libtool-exception",
		"Linux-syscall-note",
		"LLGPL",
		"LLVM-exception",
		"LZMA-exception",
		"mif-exception",
		"mxml-exception",
		"OCaml-LGPL-linking-exception",
		"OCCT-exception-1.0",
		"OpenJDK-assembly-exception-1.0",
		"openvpn-openssl-exception",
		"PCRE2-exception",
		"polyparse-exception",
		"PS-or-PDF-font-exception-20170817",
		"QPL-1.0-INRIA-2004-exception",
		"Qt-GPL-exception-1.0",
		"Qt-LGPL-exception-1.1",
		"Qwt-exception-1.0",
		"romic-exception",
		"RRDtool-FLOSS-exception-2.0",
		"rsync-linking-exception",
		"SANE-exception",
		"SHL-2.0",
		"SHL-2.1",
		"Simple-Library-Usage-exception",
		"sqlitestudio-OpenSSL-exception",
		"stunnel-exception",
		"SWI-exception",
		"Swift-exception",
		"Texinfo-exception",
		"u-boot-exception-2.0",
		"UBDL-exception",
		"Universal-FOSS-exception-1.0",
		"vsftpd-openssl-exception",
		"WxWindows-exception-3.1",
		"x11vnc-openssl-exception",
	}
}

var exceptionsMap = map[string]string{
	"389-EXCEPTION":                        "389-exception",
	"ASTERISK-EXCEPTION":                   "Asterisk-exception",
	"ASTERISK-LINKING-PROTOCOLS-EXCEPTION": "Asterisk-linking-protocols-exception",
	"AUTOCONF-EXCEPTION-2.0":               "Autoconf-exception-2.0",
	"AUTOCONF-EXCEPTION-3.0":               "Autoconf-exception-3.0",
	"AUTOCONF-EXCEPTION-GENERIC":           "Autoconf-exception-generic",
	"AUTOCONF-EXCEPTION-GENERIC-3.0":       "Autoconf-exception-generic-3.0",
	"AUTOCONF-EXCEPTION-MACRO":             "Autoconf-exception-macro",
	"BISON-EXCEPTION-1.24":                 "Bison-exception-1.24",
	"BISON-EXCEPTION-2.2":                  "Bison-exception-2.2",
	"BOOTLOADER-EXCEPTION":                 "Bootloader-exception",
	"CGAL-LINKING-EXCEPTION":               "CGAL-linking-exception",
	"CLASSPATH-EXCEPTION-2.0":              "Classpath-exception-2.0",
	"CLASSPATH-EXCEPTION-2.0-SHORT":        "Classpath-exception-2.0-short",
	"CLISP-EXCEPTION-2.0":                  "CLISP-exception-2.0",
	"CRYPTSETUP-OPENSSL-EXCEPTION":         "cryptsetup-OpenSSL-exception",
	"DIGIA-QT-LGPL-EXCEPTION-1.1":          "Digia-Qt-LGPL-exception-1.1",
	"DIGIRULE-FOSS-EXCEPTION":              "DigiRule-FOSS-exception",
	"ECOS-EXCEPTION-2.0":                   "eCos-exception-2.0",
	"ERLANG-OTP-LINKING-EXCEPTION":         "erlang-otp-linking-exception",
	"FAWKES-RUNTIME-EXCEPTION":             "Fawkes-Runtime-exception",
	"FLTK-EXCEPTION":                       "FLTK-exception",
	"FMT-EXCEPTION":                        "fmt-exception",
	"FONT-EXCEPTION-2.0":                   "Font-exception-2.0",
	"FREERTOS-EXCEPTION-2.0":               "freertos-exception-2.0",
	"GCC-EXCEPTION-2.0":                    "GCC-exception-2.0",
	"GCC-EXCEPTION-2.0-NOTE":               "GCC-exception-2.0-note",
	"GCC-EXCEPTION-3.1":                    "GCC-exception-3.1",
	"GMSH-EXCEPTION":                       "Gmsh-exception",
	"GNAT-EXCEPTION":                       "GNAT-exception",
	"GNOME-EXAMPLES-EXCEPTION":             "GNOME-examples-exception",
	"GNU-COMPILER-EXCEPTION":               "GNU-compiler-exception",
	"GNU-JAVAMAIL-EXCEPTION":               "gnu-javamail-exception",
	"GOOGLE-PATENT-WEBM":                   "Google-Patent-WebM",
	"GPL-3.0-389-DS-BASE-EXCEPTION":        "GPL-3.0-389-ds-base-exception",
	"GPL-3.0-INTERFACE-EXCEPTION":          "GPL-3.0-interface-exception",
	"GPL-3.0-LINKING-EXCEPTION":            "GPL-3.0-linking-exception",
	"GPL-3.0-LINKING-SOURCE-EXCEPTION":     "GPL-3.0-linking-source-exception",
	"GPL-CC-1.0":                           "GPL-CC-1.0",
	"GSTREAMER-EXCEPTION-2005":             "GStreamer-exception-2005",
	"GSTREAMER-EXCEPTION-2008":             "GStreamer-exception-2008",
	"HARBOUR-EXCEPTION":                    "harbour-exception",
	"I2P-GPL-JAVA-EXCEPTION":               "i2p-gpl-java-exception",
	"INDEPENDENT-MODULES-EXCEPTION":        "Independent-modules-exception",
	"KICAD-LIBRARIES-EXCEPTION":            "KiCad-libraries-exception",
	"KVIRC-OPENSSL-EXCEPTION":              "kvirc-openssl-exception",
	"LGPL-3.0-LINKING-EXCEPTION":           "LGPL-3.0-linking-exception",
	"LIBPRI-OPENH323-EXCEPTION":            "libpri-OpenH323-exception",
	"LIBTOOL-EXCEPTION":                    "Libtool-exception",
	"LINUX-SYSCALL-NOTE":                   "Linux-syscall-note",
	"LLGPL":                                "LLGPL",
	"LLVM-EXCEPTION":                       "LLVM-exception",
	"LZMA-EXCEPTION":                       "LZMA-exception",
	"MIF-EXCEPTION":                        "mif-exception",
	"MXML-EXCEPTION":                       "mxml-exception",
	"OCAML-LGPL-LINKING-EXCEPTION":         "OCaml-LGPL-linking-exception",
	"OCCT-EXCEPTION-1.0":                   "OCCT-exception-1.0",
	"OPENJDK-ASSEMBLY-EXCEPTION-1.0":       "OpenJDK-assembly-exception-1.0",
	"OPENVPN-OPENSSL-EXCEPTION":            "openvpn-openssl-exception",
	"PCRE2-EXCEPTION":                      "PCRE2-exception",
	"POLYPARSE-EXCEPTION":                  "polyparse-exception",
	"PS-OR-PDF-FONT-EXCEPTION-20170817":    "PS-or-PDF-font-exception-20170817",
	"QPL-1.0-INRIA-2004-EXCEPTION":         "QPL-1.0-INRIA-2004-exception",
	"QT-GPL-EXCEPTION-1.0":                 "Qt-GPL-exception-1.0",
	"QT-LGPL-EXCEPTION-1.1":                "Qt-LGPL-exception-1.1",
	"QWT-EXCEPTION-1.0":                    "Qwt-exception-1.0",
	"ROMIC-EXCEPTION":                      "romic-exception",
	"RRDTOOL-FLOSS-EXCEPTION-2.0":          "RRDtool-FLOSS-exception-2.0",
	"RSYNC-LINKING-EXCEPTION":              "rsync-linking-exception",
	"SANE-EXCEPTION":                       "SANE-exception",
	"SHL-2.0":                              "SHL-2.0",
	"SHL-2.1":                              "SHL-2.1",
	"SIMPLE-LIBRARY-USAGE-EXCEPTION":       "Simple-Library-Usage-exception",
	"SQLITESTUDIO-OPENSSL-EXCEPTION":       "sqlitestudio-OpenSSL-exception",
	"STUNNEL-EXCEPTION":                    "stunnel-exception",
	"SWI-EXCEPTION":                        "SWI-exception",
	"SWIFT-EXCEPTION":                      "Swift-exception",
	"TEXINFO-EXCEPTION":                    "Texinfo-exception",
	"U-BOOT-EXCEPTION-2.0":                 "u-boot-exception-2.0",
	"UBDL-EXCEPTION":                       "UBDL-exception",
	"UNIVERSAL-FOSS-EXCEPTION-1.0":         "Universal-FOSS-exception-1.0",
	"VSFTPD-OPENSSL-EXCEPTION":             "vsftpd-openssl-exception",
	"WXWINDOWS-EXCEPTION-3.1":              "WxWindows-exception-3.1",
	"X11VNC-OPENSSL-EXCEPTION":             "x11vnc-openssl-exception",
}
