Project

General

Profile

Actions

bug #7388

open

inconsistent handling of null values passed to addNameRelation methods in TaxonName

Added by Andreas Kohlbecker almost 5 years ago. Updated almost 5 years ago.

Status:
New
Priority:
New
Category:
cdmlib
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Severity:
normal
Found in Version:

Description

addBasionym() ignores retuns null and addRelationshipToName() throws an exception

@Override
    public NameRelationship addBasionym(TaxonName basionym, Reference citation, String microcitation, String ruleConsidered){
        if (basionym != null){
            return basionym.addRelationshipToName(this, NameRelationshipType.BASIONYM(), citation, microcitation, ruleConsidered);
        }else{
            return null;
        }
    }
public NameRelationship addRelationshipToName(TaxonName toName, NameRelationshipType type, Reference citation, String microCitation, String ruleConsidered){
        if (toName == null){
            throw new NullPointerException("Null is not allowed as name for a name relationship");
        }
        NameRelationship rel = new NameRelationship(toName, this, type, citation, microCitation, ruleConsidered);
        return rel;
    }

I think addBasionym() should behave the same as addRelationshipToName() and should throw an exception.

Actions #1

Updated by Andreas Kohlbecker almost 5 years ago

  • Subject changed from inconsistent handling of null valued passed to addNameRelatinon methods in TaxonName to inconsistent handling of null values passed to addNameRelation methods in TaxonName
Actions #2

Updated by Andreas Kohlbecker almost 5 years ago

The addReplacedSynonym() again follows a completely different philosophy:


    //TODO: Check if true: The replaced synonym cannot have itself a replaced synonym (?).
    @Override
    public void addReplacedSynonym(TaxonName replacedSynonym, Reference citation, String microcitation, String ruleConsidered){
        if (replacedSynonym != null){
            replacedSynonym.addRelationshipToName(this, NameRelationshipType.REPLACED_SYNONYM(), citation, microcitation, ruleConsidered);
        }
    }
Actions #3

Updated by Andreas Kohlbecker almost 5 years ago

refactoring of other name relationship related methods in 7a72a0fe

Actions #4

Updated by Andreas Müller almost 5 years ago

fixed errors in new methods 287abc0f and 676ed1a9

Actions

Also available in: Atom PDF