001/*
002 * Copyright 2020 Global Biodiversity Information Facility (GBIF)
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.gbif.api.vocabulary;
017
018import java.util.Collections;
019import java.util.List;
020import java.util.stream.Collectors;
021import java.util.stream.Stream;
022
023/**
024 * A vocabulary to be used for a nomenclatural type status of a specimen or name.
025 * See also the related TypeDesignationType enumeration.
026 * @see <a href="http://rs.gbif.org/vocabulary/gbif/type_status_2021-01-18.xml">rs.gbif.org vocabulary</a>
027 * @see <a href="http://www.bgbm.org/TDWG/CODATA/Schema/ABCD_2.06/HTML/ABCD_2.06.html#element_NomenclaturalTypeDesignations_Link">Types in ABCD</a>
028 */
029public enum TypeStatus {
030
031  /**
032   * General type designation.
033   * A specimen designated or indicated any kind of type of a species or infraspecific taxon.
034   * If possible more specific type terms (holotype, syntype, etc.) should be applied.
035   *
036   * Or the type name of a name of higher rank for taxa above the species rank.
037   */
038  TYPE,
039
040  /**
041   * For designating a type record as a reference to type information tied to a genus
042   */
043  TYPE_SPECIES,
044
045  /**
046   * For designating a type record as a reference to type information tied to a Family
047   */
048  TYPE_GENUS,
049
050  /**
051   * A paralectotype specimen that is the opposite sex of the lectotype. The term is not regulated by the ICZN. [Zoo.]
052   */
053  ALLOLECTOTYPE,
054
055  /**
056   * A paraneotype specimen that is the opposite sex of the neotype. The term is not regulated by the ICZN. [Zoo.]
057   */
058  ALLONEOTYPE,
059
060  /**
061   * A paratype specimen designated from the type series by the original author that is the opposite sex of the holotype. The term is not regulated by the ICZN. [Zoo.]
062   */
063  ALLOTYPE,
064
065  /**
066   * A deprecated term no longer recognized in the ICZN; formerly used for either syntype or paratype [see ICZN Recommendation 73E]. [Zoo.]
067   */
068  COTYPE,
069
070  /**
071   * An epitype is a specimen or illustration selected to serve as an interpretative type when any kind of holotype, lectotype, etc. is demonstrably ambiguous and cannot be critically identified for purposes of the precise application of the name of a taxon (see Art. ICBN 9.7, 9.18). An epitype supplements, rather than replaces existing types. [Bot./Bio.]
072   */
073  EPITYPE,
074
075  /**
076   * A strain or cultivation derived from epitype material. Ex-types are not regulated by the botanical or zoological code. [Bot.]
077   */
078  EXEPITYPE,
079
080  /**
081   * A strain or cultivation derived from holotype material. Ex-types are not regulated by the botanical or zoological code. [Zoo./Bot.]
082   */
083  EXHOLOTYPE,
084
085  /**
086   * A strain or cultivation derived from isotype material. Ex-types are not regulated by the botanical or zoological code. [Zoo./Bot.]
087   */
088  EXISOTYPE,
089
090  /**
091   * A strain or cultivation derived from lectotype material. Ex-types are not regulated by the botanical or zoological code. [Zoo./Bot.]
092   */
093  EXLECTOTYPE,
094
095  /**
096   * A strain or cultivation derived from neotype material. Ex-types are not regulated by the botanical or zoological code. [Zoo./Bot.]
097   */
098  EXNEOTYPE,
099
100  /**
101   * A strain or cultivation derived from paratype material. Ex-types are not regulated by the botanical or zoological code. [Zoo./Bot.]
102   */
103  EXPARATYPE,
104
105  /**
106   * A strain or cultivation derived from neotype material. Ex-types are not regulated by the botanical or zoological code. [Zoo./Bot.]
107   */
108  EXSYNTYPE,
109
110  /**
111   * A strain or cultivation derived from some kind of type material. Ex-types are not regulated by the botanical or zoological code. [Zoo./Bot.]
112   */
113  EXTYPE,
114
115  /**
116   * One or more preparations of directly related individuals representing distinct stages in the life cycle, which together form the type in an extant species of protistan [ICZN Article 72.5.4]. A hapantotype, while a series of individuals, is a holotype that must not be restricted by lectotype selection. If an hapantotype is found to contain individuals of more than one species, however, components may be excluded until it contains individuals of only one species [ICZN Article 73.3.2]. [Zoo.]
117   */
118  HAPANTOTYPE,
119
120  /**
121   * The one specimen or other element used or designated by the original author at the time of publication of the original description as the nomenclatural type of a species or infraspecific taxon. A holotype may be 'explicit' if it is clearly stated in the originating publication or 'implicit' if it is the single specimen proved to have been in the hands of the originating author when the description was published. [Zoo./Bot./Bio.]
122   */
123  HOLOTYPE,
124
125  /**
126   * A specimen that was not part of the original type series of the species, but is known from a published description, figure, or listing.
127   */
128  HYPOTYPE,
129
130  /**
131   * A drawing or photograph (also called 'phototype') of a type specimen. Note: the term 'iconotype' is not used in the ICBN, but implicit in, e. g., ICBN Art. 7 and 38. [Zoo./Bot.]
132   */
133  ICONOTYPE,
134
135  /**
136   * A duplicate of a lectotype, compare lectotype. [Bot.]
137   */
138  ISOLECTOTYPE,
139
140  /**
141   * A duplicate of a neotype, compare neotype. [Bot.]
142   */
143  ISONEOTYPE,
144
145  /**
146   *  A duplicate of a paratype, compare paratype. [Bot.]
147   */
148  ISOPARATYPE,
149
150  /**
151   * A duplicate of a syntype, compare isotype = duplicate of holotype. [Bot.]
152   */
153  ISOSYNTYPE,
154
155  /**
156   * An isotype is any duplicate of the holotype (i. e. part of a single gathering made by a collector at one time, from which the holotype was derived); it is always a specimen (ICBN Art. 7). [Bot.]
157   */
158  ISOTYPE,
159
160  /**
161   * A specimen or other element designated subsequent to the publication of the original description from the original material (syntypes or paratypes) to serve as nomenclatural type. Lectotype designation can occur only where no holotype was designated at the time of publication or if it is missing (ICBN Art. 7, ICZN Art. 74). [Zoo./Bot.] -- Note: the BioCode defines lectotype as selection from holotype material in cases where the holotype material contains more than one taxon [Bio.].
162   */
163  LECTOTYPE,
164
165  /**
166   * A specimen designated as nomenclatural type subsequent to the publication of the original description in cases where the original holotype, lectotype, all paratypes and syntypes are lost or destroyed, or suppressed by the (botanical or zoological) commission on nomenclature. In zoology also called 'Standard specimen' or 'Representative specimen'. [Zoo./Bot./Bio.]
167   */
168  NEOTYPE,
169
170  /**
171   * For specimens erroneously labelled as types an explicit negative statement may be desirable. [General]
172   */
173  NOTATYPE,
174
175  /**
176   * 'type-suspicious' material. The term is in accordance with the Botanical Code, where it is used for material that has been at the disposal of an author describing a new species, and is distinct from a type only in the fact that either the Type has not been officially assigned yet, or that the specific material has not been explicitly cited in the typification process (i.e. it was part of the swarm of specimens examined in the process, but not labelled as type itself).
177   */
178  ORIGINALMATERIAL,
179
180  /**
181   * All of the specimens in the syntype series of a species or infraspecific taxon other than the lectotype itself. Also called 'lectoparatype'. [Zoo.]
182   */
183  PARALECTOTYPE,
184
185  /**
186   * All of the specimens in the syntype series of a species or infraspecific taxon other than the neotype itself. Also called 'neoparatype'. [Zoo.]
187   */
188  PARANEOTYPE,
189
190  /**
191   * All of the specimens in the type series of a species or infraspecific taxon other than the holotype (and, in botany, isotypes). Paratypes must have been at the disposition of the author at the time when the original description was created and must have been designated and indicated in the publication. Judgment must be exercised on paratype status, for only rarely are specimens explicitly cited as paratypes, but usually as 'specimens examined,' 'other material seen', etc. [Zoo./Bot.]
192   */
193  PARATYPE,
194
195  /**
196   * A copy or cast of holotype material (compare Plastotype).
197   */
198  PLASTOHOLOTYPE,
199
200  /**
201   * A copy or cast of isotype material (compare Plastotype).
202   */
203  PLASTOISOTYPE,
204
205  /**
206   * A copy or cast of lectotype material (compare Plastotype).
207   */
208  PLASTOLECTOTYPE,
209
210  /**
211   * A copy or cast of neotype material (compare Plastotype).
212   */
213  PLASTONEOTYPE,
214
215  /**
216   * A copy or cast of paratype material (compare Plastotype).
217   */
218  PLASTOPARATYPE,
219
220  /**
221   * A copy or cast of syntype material (compare Plastotype).
222   */
223  PLASTOSYNTYPE,
224
225  /**
226   * A copy or cast of type material, esp. relevant for fossil types. Not regulated by the botanical or zoological code (?). [Zoo./Bot.]
227   */
228  PLASTOTYPE,
229
230  /**
231   * A specimen that is both a homeotype and a hypotype.
232   */
233  PLESIOTYPE,
234
235  /**
236   * A referred, described, measured or figured specimen in the original publication (including a neo/lectotypification publication) that is not a primary type. [Zoo.]
237   */
238  SECONDARYTYPE,
239
240  /**
241   * A referred, described, measured or figured specimen in a revision of a previously described taxon. [Zoo.]
242   */
243  SUPPLEMENTARYTYPE,
244
245  /**
246   * One of the series of specimens used to describe a species or infraspecific taxon when neither a single holotype nor a lectotype has been designated. The syntypes collectively constitute the name-bearing type. [Zoo./Bot.]
247   */
248  SYNTYPE,
249
250  /**
251   * One or more specimens collected at the same location as the type series (type locality), regardless of whether they are part of the type series. Topotypes are not regulated by the botanical or zoological code. Also called 'locotype'. [Zoo./Bot.]
252   */
253  TOPOTYPE;
254
255  /**
256   * @return a list of all type status values applicable for specimens.
257   */
258  public static List<TypeStatus> specimenTypeStatusList() {
259    return Collections.unmodifiableList(
260      Stream.of(values())
261        .filter(TypeStatus::isTypeSpecimen)
262        .collect(Collectors.toList()));
263  }
264
265  /**
266   * @return a list of all type status values applicable for scientific names, not specimens.
267   */
268  public static List<TypeStatus> nameTypeStatusList() {
269    return Collections.unmodifiableList(
270      Stream.of(values())
271        .filter(status -> TypeStatus.TYPE == status || !status.isTypeSpecimen())
272        .collect(Collectors.toList())
273    );
274  }
275
276  /**
277   * @return true if the type status is referring to a type specimen in contrast to a type genus or species name
278   */
279  public boolean isTypeSpecimen() {
280    return this != TYPE_GENUS && this != TYPE_SPECIES;
281  }
282
283}