/*
 * Copyright 2014 Global Biodiversity Information Facility (GBIF)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.gbif.nameparser.api;

/**
 * Enumeration representing the different nomenclatoral codes found in biology for scientific names.
 * <p/>
 * Nomenclature codes or codes of nomenclature are the various rulebooks that govern biological taxonomic
 * nomenclature, each in their own broad field of organisms.
 * To an end-user who only deals with names of species, with some awareness that species are assignable to
 * families, it may not be noticeable that there is more than one code, but beyond this basic level these are rather
 * different in the way they work.
 *
 * @see <a href="http://en.wikipedia.org/wiki/Nomenclature_codes">Nomenclature codes (Wikipedia)</a>
 */
public enum NomCode {

  BACTERIAL("ICNB",
      "International Code of Nomenclature of Bacteria",
      "http://www.ncbi.nlm.nih.gov/books/NBK8808/"),
  BOTANICAL("ICNafp",
      "International Code of Nomenclature for algae, fungi, and plants",
      "http://ibot.sav.sk/icbn/main.htm"),
  CULTIVARS("ICNCP",
      "International Code of Nomenclature for Cultivated Plants",
      ""),
  VIRUS("ICVCN",
      "International Code of Virus Classifications and Nomenclature",
      "http://talk.ICTVonline.org/"),
  ZOOLOGICAL("ICZN",
      "International Code of Zoological Nomenclature",
      "http://www.nhm.ac.uk/hosted-sites/iczn/code/index.jsp");

  private final String title;
  private final String acronym;
  private final String link;

  NomCode(String acronym, String title, String link) {
    this.acronym = acronym;
    this.link = link;
    this.title = title;
  }

  public String getAcronym() {
    return acronym;
  }

  public String getLink() {
    return link;
  }

  public String getTitle() {
    return title;
  }

}

@@ -1344,17 +1344,17 @@
 IAL(%22ICN
-B
+P
 %22,%0A     
@@ -1397,16 +1397,19 @@
  of 
-Bacteria
+Prokaryotes
 %22,%0A 
@@ -1422,46 +1422,42 @@
 http
+s
 ://
-www.ncbi.nlm.nih.gov/books/NBK8808/
+doi.org/10.1099/ijsem.0.000778
 %22),%0A
@@ -1476,11 +1476,8 @@
 %22ICN
-afp
 %22,%0A 
@@ -1563,36 +1563,45 @@
 http
+s
 ://
-ibot.sav.sk/icb
+www.iapt-taxon.org/nome
 n/main.
-htm
+php
 %22),%0A
@@ -1694,16 +1694,122 @@
 %0A      %22
+https://www.ishs.org/scripta-horticulturae/international-code-nomenclature-cultivated-plants-ninth-edition
 %22),%0A  VI
@@ -1906,16 +1906,17 @@
 http
+s
 ://talk.
 ICTV
@@ -1915,12 +1915,12 @@
 alk.
-ICTV
+ictv
 onli
@@ -1926,16 +1926,60 @@
 ine.org/
+information/w/ictv-information/383/ictv-code
 %22),%0A  ZO
@@ -2072,50 +2072,21 @@
 www.
-nhm.ac.uk/hosted-sites/iczn/code/index.jsp
+iczn.org/code
 %22);%0A

Update nom codes