package no.norge.data.oreg.javazonetalk;

/* metamodel_version: 1.11.0 */
/* version: 0.1.0 */
import java.util.Map;
import java.util.HashMap;
import java.util.Collections;

import com.fasterxml.jackson.annotation.JsonCreator;

/**
 * EU Licence-vokabularet frå Publications Office. Kjelde: http://publications.europa.eu/resource/authority/licence/
 */
public enum EULicence {

  /**
   * Creative Commons Zero 1.0 Universal
   */
  CC0("CC0"),

  /**
   * Creative Commons Attribution 4.0 International
   */
  CC_BY_4_0("CC_BY_4_0"),

  /**
   * Norwegian Licence for Open Government Data 2.0. Norsk skildring: https://data.norge.no/nlod/no/2.0
   */
  NLOD_2_0("NLOD_2_0"),

  /**
   * Creative Commons Attribution-ShareAlike 4.0 International
   */
  CC_BYSA_4_0("CC_BYSA_4_0"),

  /**
   * MIT License
   */
  MIT("MIT"),

  /**
   * Apache License 2.0
   */
  APACHE_2_0("APACHE_2_0"),

  /**
   * GNU General Public License 3.0
   */
  GPL_3_0("GPL_3_0"),

  /**
   * European Union Public Licence 1.2
   */
  EUPL_1_2("EUPL_1_2");

  private final static Map<String, EULicence> MAP;

  static {
    Map<String, EULicence> map = new HashMap<String, EULicence>();
    for ( EULicence value : EULicence.values() ) {
      map.put(value.toString(), value);
    }

    MAP = Collections.unmodifiableMap(map);
  }

  private final String repr;

  EULicence(String repr) {
    this.repr = repr;
  }

  @Override
  public String toString() {
    return repr;
  }

  @JsonCreator
  public static EULicence fromString(String v) {
    return MAP.get(v);
  }

}