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;

/**
 * ADMS Publisher Type-vokabularet. Kjelde: http://purl.org/adms/publishertype/
 */
public enum ADMSPublisherType {

  /**
   * Nasjonal styremakt
   */
  NATIONAL_AUTHORITY("NATIONAL_AUTHORITY"),

  /**
   * Regional styremakt
   */
  REGIONAL_AUTHORITY("REGIONAL_AUTHORITY"),

  /**
   * Lokal styremakt
   */
  LOCAL_AUTHORITY("LOCAL_AUTHORITY"),

  /**
   * Overnasjonal styremakt
   */
  SUPRANATIONAL_AUTHORITY("SUPRANATIONAL_AUTHORITY"),

  /**
   * Akademisk/vitskapeleg organisasjon
   */
  ACADEMIA_SCIENTIFIC_ORGANISATION("ACADEMIA_SCIENTIFIC_ORGANISATION"),

  /**
   * Privatperson
   */
  PRIVATE_INDIVIDUAL("PRIVATE_INDIVIDUAL"),

  /**
   * Industrikonsortium
   */
  INDUSTRY_CONSORTIUM("INDUSTRY_CONSORTIUM"),

  /**
   * Ikkje-offentleg organisasjon
   */
  NON_GOVERNMENTAL_ORGANISATION("NON_GOVERNMENTAL_ORGANISATION"),

  /**
   * Ideell organisasjon
   */
  NON_PROFIT_ORGANISATION("NON_PROFIT_ORGANISATION"),

  /**
   * Selskap
   */
  COMPANY("COMPANY"),

  /**
   * Standardiseringsorgan
   */
  STANDARDISATION_BODY("STANDARDISATION_BODY");

  private final static Map<String, ADMSPublisherType> MAP;

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

    MAP = Collections.unmodifiableMap(map);
  }

  private final String repr;

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

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

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

}