From: Andreas Müller Date: Fri, 29 Jul 2022 18:14:51 +0000 (+0200) Subject: ref #10082 split MAN pro parte symbol in formatter X-Git-Tag: 5.32.0^2~20 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/commitdiff_plain/7d75bc7accccbb49ca95f433c2f7d925dfd2885b ref #10082 split MAN pro parte symbol in formatter --- diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/format/taxon/TaxonRelationshipFormatter.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/format/taxon/TaxonRelationshipFormatter.java index 986ed9987a..9bbd4dc449 100644 --- a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/format/taxon/TaxonRelationshipFormatter.java +++ b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/format/taxon/TaxonRelationshipFormatter.java @@ -163,6 +163,20 @@ public class TaxonRelationshipFormatter { } } + //p.p. + if (isMisapplied) { + if (isProParteMAN(type, inverse)) { + builder.addSeparator(", "); + symbol = "p.p."; + builder.add(TagEnum.symbol, symbol); + } else if (isProParteMAN(type, inverse)) { + builder.addSeparator(", "); + symbol = "part."; + builder.add(TagEnum.symbol, symbol); + } + } + + //rel sec List relSecTags = getReferenceTags(taxonRelationship.getCitation(), taxonRelationship.getCitationMicroReference(),true); if (!relSecTags.isEmpty()){ @@ -239,6 +253,10 @@ public class TaxonRelationshipFormatter { //symbol String symbol = inverse? type.getInverseSymbol():type.getSymbol(); if (isNotBlank(symbol)){ + //handle p.p. MAN specific #10082 + if (isProParteMAN(type, inverse) || isPartialMAN(type, inverse)) { + return TaxonRelationshipType.MISAPPLIED_NAME_FOR().getInverseSymbol(); + } return symbol; } @@ -276,6 +294,14 @@ public class TaxonRelationshipFormatter { return UNDEFINED_SYMBOL; } + private boolean isPartialMAN(TaxonRelationshipType type, boolean inverse) { + return inverse && type.getUuid().equals(TaxonRelationshipType.uuidPartialMisappliedNameFor); + } + + private boolean isProParteMAN(TaxonRelationshipType type, boolean inverse) { + return inverse && type.getUuid().equals(TaxonRelationshipType.uuidProParteMisappliedNameFor); + } + private boolean isNotBlank(String str) { return StringUtils.isNotBlank(str); } diff --git a/cdmlib-model/src/test/java/eu/etaxonomy/cdm/format/taxon/TaxonRelationshipFormatterTest.java b/cdmlib-model/src/test/java/eu/etaxonomy/cdm/format/taxon/TaxonRelationshipFormatterTest.java index d42e486543..eca05733c5 100644 --- a/cdmlib-model/src/test/java/eu/etaxonomy/cdm/format/taxon/TaxonRelationshipFormatterTest.java +++ b/cdmlib-model/src/test/java/eu/etaxonomy/cdm/format/taxon/TaxonRelationshipFormatterTest.java @@ -148,13 +148,14 @@ public class TaxonRelationshipFormatterTest extends TermTestBase{ inverse = true; TaxonRelationshipType type = TaxonRelationshipType.PRO_PARTE_MISAPPLIED_NAME_FOR(); - String inverseSymbol = type.getInverseSymbol(); + String manInverseSymbol = TaxonRelationshipType.MISAPPLIED_NAME_FOR().getInverseSymbol(); String symbol = type.getSymbol(); taxonRel.setType(type); List tags = formatter.getTaggedText(taxonRel, inverse, languages); String str = TaggedCacheHelper.createString(tags); - Assert.assertEquals(inverseSymbol + " \"Abies alba\" sensu Macfarlane 1918, err. sec. Cheek 1919: 123", str); + //#10082 + Assert.assertEquals("We split the inverse symbol here", manInverseSymbol + " \"Abies alba\" sensu Macfarlane 1918, p.p., err. sec. Cheek 1919: 123", str); //inverse tags = formatter.getTaggedText(taxonRel, !inverse, languages);