Project

General

Profile

Download (23.4 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2017 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.model.name;
10

    
11
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
12
import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
13
import eu.etaxonomy.cdm.model.reference.Reference;
14
import eu.etaxonomy.cdm.strategy.parser.INonViralNameParser;
15
import eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl;
16

    
17
/**
18
 * @author a.mueller
19
 \* @since 30.01.2017
20
 *
21
 */
22
public class TaxonNameFactory {
23

    
24
    static private INonViralNameParser<?> nameParser = new NonViralNameParserImpl();
25

    
26
 // *************** FACTORY METHODS ********************************/
27

    
28

    
29
    /**
30
     * Create a new {@link TaxonName} instance depending on {@link NomenclaturalCode code} and
31
     * {@link Rank rank}. Creates a new {@link HomotypicalGroup homotypical group}.
32
     *
33
     * @param code the nomenclatural code, must not be <code>null</code>
34
     * @param rank the rank
35
     * @return the new name
36
     * @see #NewNameInstance(NomenclaturalCode, Rank, HomotypicalGroup)
37
     * @throws NullPointerException if code is <code>null</code>
38
     */
39
    public static TaxonName NewNameInstance(NomenclaturalCode code, Rank rank) {
40
        return NewNameInstance(code, rank, null);
41
    }
42
    /**
43
     * Create a new {@link TaxonName} instance depending on {@link NomenclaturalCode code}
44
     * {@link Rank rank} and {@link HomotypicalGroup homotypical group}.
45
     *
46
     * @param code the nomenclatural code, must not be <code>null</code>
47
     * @param rank the rank
48
     * @param homotypicalGroup the homotypical group
49
     * @return the new name
50
     * @see #NewNameInstance(NomenclaturalCode, Rank)
51
     * @throws NullPointerException if code is <code>null</code>
52
     */
53
    public static TaxonName NewNameInstance(NomenclaturalCode code, Rank rank,
54
            HomotypicalGroup homotypicalGroup) throws NullPointerException {
55
        if (code == null){
56
            throw new NullPointerException("NomenclaturalCode must not be null");
57
        }
58
        return TaxonName.NewInstance(code, rank, homotypicalGroup);
59
    }
60

    
61

    
62

    
63
    /**
64
     * Creates a new non viral taxon name instance
65
     * only containing its {@link common.Rank rank} and
66
      * the {@link eu.etaxonomy.cdm.strategy.cache.name.TaxonNameDefaultCacheStrategy default cache strategy}.
67
     *
68
     * @param  rank  the rank to be assigned to <i>this</i> non viral taxon name
69
     * @see    #NewInstance(Rank, HomotypicalGroup)
70
     * @see    #NonViralName(Rank, HomotypicalGroup)
71
     * @see    #NonViralName()
72
     * @see    #NonViralName(Rank, String, String, String, String, TeamOrPersonBase, Reference, String, HomotypicalGroup)
73
     * @see    eu.etaxonomy.cdm.strategy.cache.name.INonViralNameCacheStrategy
74
     * @see    eu.etaxonomy.cdm.strategy.cache.name.INameCacheStrategy
75
     * @see    eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy
76
     */
77
    public static TaxonName NewNonViralInstance(Rank rank){
78
        return TaxonName.NewInstance(NomenclaturalCode.NonViral, rank, null);
79
    }
80

    
81
    /**
82
     * Creates a new non viral taxon name instance
83
     * only containing its {@link common.Rank rank},
84
     * its {@link HomotypicalGroup homotypical group} and
85
      * the {@link eu.etaxonomy.cdm.strategy.cache.name.TaxonNameDefaultCacheStrategy default cache strategy}.
86
     * The new non viral taxon name instance will be also added to the set of
87
     * non viral taxon names belonging to this homotypical group.
88
     *
89
     * @param  rank  the rank to be assigned to <i>this</i> non viral taxon name
90
     * @param  homotypicalGroup  the homotypical group to which <i>this</i> non viral taxon name belongs
91
     * @see    #NewInstance(Rank)
92
     * @see    #NonViralName(Rank, HomotypicalGroup)
93
     * @see    #NonViralName()
94
     * @see    #NonViralName(Rank, String, String, String, String, TeamOrPersonBase, Reference, String, HomotypicalGroup)
95
     * @see    eu.etaxonomy.cdm.strategy.cache.name.INonViralNameCacheStrategy
96
     * @see    eu.etaxonomy.cdm.strategy.cache.name.INameCacheStrategy
97
     * @see    eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy
98
     */
99
    public static TaxonName NewNonViralInstance(Rank rank, HomotypicalGroup homotypicalGroup){
100
        return TaxonName.NewInstance(NomenclaturalCode.NonViral, rank, homotypicalGroup);
101
    }
102

    
103

    
104
    /**
105
     * Creates a new viral taxon name instance only containing its {@link Rank rank}.
106
     *
107
     * @param   rank  the rank to be assigned to <i>this</i> viral taxon name
108
     * @see     #ViralName(Rank)
109
     */
110
    public static TaxonName NewViralInstance(Rank rank){
111
        return TaxonName.NewInstance(NomenclaturalCode.ICVCN, rank, null);
112
    }
113

    
114
    /**
115
     * Creates a new bacterial taxon name instance
116
     * only containing its {@link Rank rank} and
117
     * the {@link eu.etaxonomy.cdm.strategy.cache.name.TaxonNameDefaultCacheStrategy default cache strategy}.
118
     *
119
     * @param  rank  the rank to be assigned to <i>this</i> bacterial taxon name
120
     * @see    #NewInstance(Rank, HomotypicalGroup)
121
     * @see    #BacterialName(Rank, HomotypicalGroup)
122
     * @see    eu.etaxonomy.cdm.strategy.cache.name.INonViralNameCacheStrategy
123
     * @see    eu.etaxonomy.cdm.strategy.cache.name.INameCacheStrategy
124
     * @see    eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy
125
     */
126
    public static TaxonName NewBacterialInstance(Rank rank){
127
        return TaxonName.NewInstance(NomenclaturalCode.ICNB, rank, null);
128
    }
129

    
130
    /**
131
     * Creates a new bacterial taxon name instance
132
     * only containing its {@link Rank rank},
133
     * its {@link HomotypicalGroup homotypical group} and
134
     * the {@link eu.etaxonomy.cdm.strategy.cache.name.TaxonNameDefaultCacheStrategy default cache strategy}.
135
     * The new bacterial taxon name instance will be also added to the set of
136
     * bacterial taxon names belonging to this homotypical group.
137
     *
138
     * @param  rank  the rank to be assigned to <i>this</i> bacterial taxon name
139
     * @param  homotypicalGroup  the homotypical group to which <i>this</i> bacterial taxon name belongs
140
     * @see    #NewInstance(Rank)
141
     * @see    #BacterialName(Rank, HomotypicalGroup)
142
     * @see    eu.etaxonomy.cdm.strategy.cache.name.INonViralNameCacheStrategy
143
     * @see    eu.etaxonomy.cdm.strategy.cache.name.INameCacheStrategy
144
     * @see    eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy
145
     */
146
    public static IBacterialName NewBacterialInstance(Rank rank, HomotypicalGroup homotypicalGroup){
147
        return TaxonName.NewInstance(NomenclaturalCode.ICNB, rank, homotypicalGroup);
148
    }
149

    
150

    
151
    /**
152
     * Creates a new zoological taxon name instance
153
     * only containing its {@link Rank rank} and
154
     * the {@link eu.etaxonomy.cdm.strategy.cache.name.ZooNameDefaultCacheStrategy default cache strategy}.
155
     *
156
     * @param   rank    the rank to be assigned to <i>this</i> zoological taxon name
157
     * @see             #ZoologicalName(Rank, HomotypicalGroup)
158
     * @see             #NewInstance(Rank, HomotypicalGroup)
159
     * @see             #NewZoologicalInstance(Rank, String, String, String, String, TeamOrPersonBase, INomenclaturalReference, String, HomotypicalGroup)
160
     * @see             eu.etaxonomy.cdm.strategy.cache.name.ZooNameDefaultCacheStrategy
161
     */
162
    public static TaxonName NewZoologicalInstance(Rank rank){
163
        return TaxonName.NewInstance(NomenclaturalCode.ICZN, rank, null);
164
    }
165

    
166
    /**
167
     * Creates a new zoological taxon name instance
168
     * only containing its {@link Rank rank},
169
     * its {@link HomotypicalGroup homotypical group} and
170
     * the {@link eu.etaxonomy.cdm.strategy.cache.name.ZooNameDefaultCacheStrategy default cache strategy}.
171
     * The new zoological taxon name instance will be also added to the set of
172
     * zoological taxon names belonging to the given homotypical group.
173
     *
174
     * @param  rank  the rank to be assigned to <i>this</i> zoological taxon name
175
     * @param  homotypicalGroup  the homotypical group to which <i>this</i> zoological taxon name belongs
176
     * @see    #NewInstance(Rank)
177
     * @see    #NewZoologicalInstance(Rank, String, String, String, String, TeamOrPersonBase, INomenclaturalReference, String, HomotypicalGroup)
178
     * @see    #ZoologicalName(Rank, HomotypicalGroup)
179
     * @see    eu.etaxonomy.cdm.strategy.cache.name.ZooNameDefaultCacheStrategy
180
     */
181
    public static TaxonName NewZoologicalInstance(Rank rank, HomotypicalGroup homotypicalGroup){
182
        return TaxonName.NewInstance(NomenclaturalCode.ICZN, rank, homotypicalGroup);
183
    }
184
    /**
185
     * Creates a new zoological taxon name instance
186
     * containing its {@link Rank rank},
187
     * its {@link HomotypicalGroup homotypical group},
188
     * its scientific name components, its {@link eu.etaxonomy.cdm.agent.TeamOrPersonBase author(team)},
189
     * its {@link eu.etaxonomy.cdm.reference.INomenclaturalReference nomenclatural reference} and
190
     * the {@link eu.etaxonomy.cdm.strategy.cache.name.ZooNameDefaultCacheStrategy default cache strategy}.
191
     * The new zoological taxon name instance will be also added to the set of
192
     * zoological taxon names belonging to the given homotypical group.
193
     *
194
     * @param   rank  the rank to be assigned to <i>this</i> zoological taxon name
195
     * @param   genusOrUninomial the string for <i>this</i> zoological taxon name
196
     *          if its rank is genus or higher or for the genus part
197
     *          if its rank is lower than genus
198
     * @param   infraGenericEpithet  the string for the first epithet of
199
     *          <i>this</i> zoological taxon name if its rank is lower than genus
200
     *          and higher than species aggregate
201
     * @param   specificEpithet  the string for the first epithet of
202
     *          <i>this</i> zoological taxon name if its rank is species aggregate or lower
203
     * @param   infraSpecificEpithet  the string for the second epithet of
204
     *          <i>this</i> zoological taxon name if its rank is lower than species
205
     * @param   combinationAuthorship  the author or the team who published <i>this</i> zoological taxon name
206
     * @param   nomenclaturalReference  the nomenclatural reference where <i>this</i> zoological taxon name was published
207
     * @param   nomenclMicroRef  the string with the details for precise location within the nomenclatural reference
208
     * @param   homotypicalGroup  the homotypical group to which <i>this</i> zoological taxon name belongs
209
     * @see     #NewInstance(Rank)
210
     * @see     #NewInstance(Rank, HomotypicalGroup)
211
     * @see     #ZoologicalName(Rank, String, String, String, String, TeamOrPersonBase, INomenclaturalReference, String, HomotypicalGroup)
212
     * @see     eu.etaxonomy.cdm.strategy.cache.name.ZooNameDefaultCacheStrategy
213
     */
214
    public static TaxonName NewZoologicalInstance(Rank rank,
215
            String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet,
216
            TeamOrPersonBase combinationAuthorship, Reference nomenclaturalReference, String nomenclMicroRef, HomotypicalGroup homotypicalGroup) {
217
        return TaxonName.NewInstance(NomenclaturalCode.ICZN, rank,
218
            genusOrUninomial, infraGenericEpithet, specificEpithet, infraSpecificEpithet,
219
            combinationAuthorship, nomenclaturalReference, nomenclMicroRef,
220
            homotypicalGroup);
221
    }
222

    
223
    /**
224
     * Creates a new botanical taxon name instance
225
     * only containing its {@link Rank rank} and
226
     * the {@link eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy default cache strategy}.
227
     *
228
     * @param   rank    the rank to be assigned to <i>this</i> botanical taxon name
229
     * @see             #BotanicalName(Rank, HomotypicalGroup)
230
     * @see             #NewInstance(Rank, HomotypicalGroup)
231
     * @see             #NewBotanicalInstance(Rank, String, String, String, String, TeamOrPersonBase, INomenclaturalReference, String, HomotypicalGroup)
232
     * @see             eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy
233
     */
234
    public static TaxonName NewBotanicalInstance(Rank rank){
235
        return TaxonName.NewInstance(NomenclaturalCode.ICNAFP, rank, null);
236
    }
237
    /**
238
     * Creates a new botanical taxon name instance
239
     * only containing its {@link Rank rank},
240
     * its {@link HomotypicalGroup homotypical group} and
241
     * the {@link eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy default cache strategy}.
242
     * The new botanical taxon name instance will be also added to the set of
243
     * botanical taxon names belonging to this homotypical group.
244
     *
245
     * @param  rank  the rank to be assigned to <i>this</i> botanical taxon name
246
     * @param  homotypicalGroup  the homotypical group to which <i>this</i> botanical taxon name belongs
247
     * @see    #NewInstance(Rank)
248
     * @see    #NewBotanicalInstance(Rank, String, String, String, String, TeamOrPersonBase, INomenclaturalReference, String, HomotypicalGroup)
249
     * @see    #BotanicalName(Rank, HomotypicalGroup)
250
     * @see    eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy
251
     */
252
    public static TaxonName NewBotanicalInstance(Rank rank, HomotypicalGroup homotypicalGroup){
253
        return TaxonName.NewInstance(NomenclaturalCode.ICNAFP, rank, homotypicalGroup);
254
    }
255
    /**
256
     * Creates a new botanical taxon name instance
257
     * containing its {@link Rank rank},
258
     * its {@link HomotypicalGroup homotypical group},
259
     * its scientific name components, its {@link eu.etaxonomy.cdm.model.agent.TeamOrPersonBase author(team)},
260
     * its {@link eu.etaxonomy.cdm.model.reference.INomenclaturalReference nomenclatural reference} and
261
     * the {@link eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy default cache strategy}.
262
     * The new botanical taxon name instance will be also added to the set of
263
     * botanical taxon names belonging to this homotypical group.
264
     *
265
     * @param   rank  the rank to be assigned to <i>this</i> botanical taxon name
266
     * @param   genusOrUninomial the string for <i>this</i> botanical taxon name
267
     *          if its rank is genus or higher or for the genus part
268
     *          if its rank is lower than genus
269
     * @param   infraGenericEpithet  the string for the first epithet of
270
     *          <i>this</i> botanical taxon name if its rank is lower than genus
271
     *          and higher than species aggregate
272
     * @param   specificEpithet  the string for the first epithet of
273
     *          <i>this</i> botanical taxon name if its rank is species aggregate or lower
274
     * @param   infraSpecificEpithet  the string for the second epithet of
275
     *          <i>this</i> botanical taxon name if its rank is lower than species
276
     * @param   combinationAuthorship  the author or the team who published <i>this</i> botanical taxon name
277
     * @param   nomenclaturalReference  the nomenclatural reference where <i>this</i> botanical taxon name was published
278
     * @param   nomenclMicroRef  the string with the details for precise location within the nomenclatural reference
279
     * @param   homotypicalGroup  the homotypical group to which <i>this</i> botanical taxon name belongs
280
     * @see     #NewInstance(Rank)
281
     * @see     #NewInstance(Rank, HomotypicalGroup)
282
     * @see     ZoologicalName#ZoologicalName(Rank, String, String, String, String, TeamOrPersonBase, INomenclaturalReference, String, HomotypicalGroup)
283
     * @see     eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy
284
     */
285
    public static  TaxonName NewBotanicalInstance(Rank rank,
286
            String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet,
287
            TeamOrPersonBase combinationAuthorship, Reference nomenclaturalReference, String nomenclMicroRef, HomotypicalGroup homotypicalGroup) {
288
        return TaxonName.NewInstance(NomenclaturalCode.ICNAFP, rank, genusOrUninomial, infraGenericEpithet, specificEpithet, infraSpecificEpithet,
289
            combinationAuthorship, nomenclaturalReference, nomenclMicroRef, homotypicalGroup);
290
    }
291

    
292

    
293
    /**
294
     * Creates a new cultivar taxon name instance
295
     * only containing its {@link Rank rank} and
296
     * the {@link eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy default cache strategy}.
297
     *
298
     * @param   rank    the rank to be assigned to <i>this</i> cultivar taxon name
299
     * @see             #CultivarPlantName(Rank, HomotypicalGroup)
300
     * @see             #NewInstance(Rank, HomotypicalGroup)
301
     * @see             eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy
302
     */
303
    public static TaxonName NewCultivarInstance(Rank rank){
304
        return TaxonName.NewInstance(NomenclaturalCode.ICNCP, rank, null);
305
    }
306

    
307
    /**
308
     * Creates a new cultivar taxon name instance
309
     * only containing its {@link Rank rank},
310
     * its {@link HomotypicalGroup homotypical group} and
311
     * the {@link eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy default cache strategy}.
312
     * The new cultivar taxon name instance will be also added to the set of
313
     * cultivar taxon names belonging to this homotypical group.
314
     *
315
     * @param  rank  the rank to be assigned to <i>this</i> cultivar taxon name
316
     * @param  homotypicalGroup  the homotypical group to which <i>this</i> cultivar taxon name belongs
317
     * @see    #NewInstance(Rank)
318
     * @see    #CultivarPlantName(Rank, HomotypicalGroup)
319
     * @see    eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy
320
     */
321
    public static ICultivarPlantName NewCultivarInstance(Rank rank, HomotypicalGroup homotypicalGroup){
322
        return TaxonName.NewInstance(NomenclaturalCode.ICNCP, rank, homotypicalGroup);
323
    }
324

    
325

    
326

    
327

    
328
    /**
329
     * Returns a botanical taxon name based on parsing a string representing
330
     * all elements (according to the ICBN) of a botanical taxon name (where
331
     * the scientific name is an uninomial) including authorship but without
332
     * nomenclatural reference. If the {@link Rank rank} is not "Genus" it should be
333
     * set afterwards with the {@link TaxonName#setRank(Rank) setRank} methode.
334
     *
335
     * @param   fullNameString  the string to be parsed
336
     * @return                  the new botanical taxon name
337
     */
338
    public static TaxonName PARSED_BOTANICAL(String fullNameString){
339
        return PARSED_BOTANICAL(fullNameString, Rank.GENUS());
340
    }
341

    
342

    
343
    /**
344
     * Returns a botanical taxon name based on parsing a string representing
345
     * all elements (according to the ICBN) of a botanical taxon name including
346
     * authorship but without nomenclatural reference. The parsing result
347
     * depends on the given rank of the botanical taxon name to be created.
348
     *
349
     * @param   fullNameString  the string to be parsed
350
     * @param   rank            the rank of the taxon name
351
     * @return                  the new botanical taxon name
352
     */
353
    public static TaxonName PARSED_BOTANICAL(String fullNameString, Rank rank){
354
        if (nameParser == null){
355
            nameParser = new NonViralNameParserImpl();
356
        }
357
        return (TaxonName)nameParser.parseFullName(fullNameString, NomenclaturalCode.ICNAFP,  rank);
358
    }
359

    
360

    
361
    /**
362
     * Returns a botanical taxon name based on parsing a string representing
363
     * all elements (according to the ICBN) of a botanical taxon name (where
364
     * the scientific name is an uninomial) including authorship and
365
     * nomenclatural reference. Eventually a new {@link eu.etaxonomy.cdm.model.reference.INomenclaturalReference nomenclatural reference}
366
     * instance will also be created. If the {@link Rank rank} is not "Genus" it should be
367
     * set afterwards with the {@link TaxonName#setRank(Rank) setRank} methode.
368
     *
369
     * @param   fullNameAndReferenceString  the string to be parsed
370
     * @return                              the new botanical taxon name
371
     */
372
    public static IBotanicalName PARSED_BOTANICAL_REFERENCE(String fullNameAndReferenceString){
373
        return PARSED_BOTANICAL_REFERENCE(fullNameAndReferenceString, Rank.GENUS());
374
    }
375

    
376
    /**
377
     * Returns a botanical taxon name based on parsing a string representing
378
     * all elements (according to the ICBN) of a botanical taxon name including
379
     * authorship and nomenclatural reference. The parsing result depends on
380
     * the given rank of the botanical taxon name to be created.
381
     * Eventually a new {@link eu.etaxonomy.cdm.model.reference.INomenclaturalReference nomenclatural reference}
382
     * instance will also be created.
383
     *
384
     * @param   fullNameAndReferenceString  the string to be parsed
385
     * @param   rank                        the rank of the taxon name
386
     * @return                              the new botanical taxon name
387
     */
388
    public static IBotanicalName PARSED_BOTANICAL_REFERENCE(String fullNameAndReferenceString, Rank rank){
389
        if (nameParser == null){
390
            nameParser = new NonViralNameParserImpl();
391
        }
392
        return (IBotanicalName)nameParser.parseReferencedName(fullNameAndReferenceString, NomenclaturalCode.ICNAFP, rank);
393
    }
394

    
395

    
396

    
397

    
398

    
399
    /**
400
     * Returns a zoological taxon name based on parsing a string representing
401
     * all elements (according to the {@link NomenclaturalCode#ICZN() ICZN}) of a zoological taxon name (where
402
     * the scientific name is an uninomial) including authorship but without
403
     * nomenclatural reference.
404
     *
405
     * @param   fullNameString  the string to be parsed
406
     * @return                  the new zoological taxon name
407
     */
408
    public static TaxonName PARSED_ZOOLOGICAL(String fullNameString){
409
        return PARSED_ZOOLOGICAL(fullNameString, Rank.GENUS());
410
    }
411

    
412
    /**
413
     * Returns a zoological taxon name based on parsing a string representing
414
     * all elements (according to the {@link NomenclaturalCode#ICZN() ICZN})) of a zoological taxon name including
415
     * authorship but without nomenclatural reference. The parsing result
416
     * depends on the given rank of the zoological taxon name to be created.
417
     *
418
     * @param   fullNameString  the string to be parsed
419
     * @param   rank            the rank of the taxon name
420
     * @return                  the new zoological taxon name
421
     */
422
    public static TaxonName PARSED_ZOOLOGICAL(String fullNameString, Rank rank){
423
        if (nameParser == null){
424
            nameParser  = new NonViralNameParserImpl();
425
        }
426
        return (TaxonName)nameParser.parseFullName(fullNameString, NomenclaturalCode.ICZN, rank);
427
    }
428

    
429

    
430
    /**
431
     * @param rank
432
     * @param genusOrUninomial
433
     * @param infraGenericEpithet
434
     * @param specificEpithet
435
     * @param infraSpecificEpithet
436
     * @param combinationAuthorship
437
     * @param nomenclaturalReference
438
     * @param nomenclMicroRef
439
     * @param homotypicalGroup
440
     * @return
441
     */
442
    public static INonViralName NewNonViralInstance(Rank rank, String genusOrUninomial, String infraGenericEpithet, String specificEpithet,
443
            String infraSpecificEpithet, TeamOrPersonBase combinationAuthorship, Reference nomenclaturalReference, String nomenclMicroRef,
444
            HomotypicalGroup homotypicalGroup) {
445
        return TaxonName.NewInstance(NomenclaturalCode.NonViral, rank, genusOrUninomial, infraGenericEpithet, specificEpithet,
446
                infraSpecificEpithet, combinationAuthorship, nomenclaturalReference, nomenclMicroRef,
447
                homotypicalGroup);
448
    }
449

    
450
    /**
451
     * @param rank
452
     * @return
453
     */
454
    public static TaxonName NewFungusInstance(Rank rank) {
455
        return TaxonName.NewInstance(NomenclaturalCode.Fungi, rank, null);
456
    }
457

    
458
}
(31-31/36)