Project

General

Profile

« Previous | Next » 

Revision 0f44e94a

Added by Andreas Müller almost 5 years ago

ref #1444, ref #8509 improve ZoologicalNameCacheStrategy for infraspecific ranks not being subspecies

View differences:

cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/name/TaxonNameDefaultCacheStrategy.java
744 744
        return tags;
745 745
    }
746 746

  
747
    /**
748
     * Creates the tag list for an infraspecific taxon. In include is true the result will contain
749
     * @param nonViralName
750
     * @return
751
     */
752
    protected List<TaggedText> getInfraSpeciesTaggedNameCache(TaxonName nonViralName){
753
        if (nonViralName.getNameType().isZoological()){
754
            boolean includeMarker = ! (nonViralName.isAutonym());
755
            return getInfraSpeciesTaggedNameCache(nonViralName, includeMarker);
747
    protected List<TaggedText> getInfraSpeciesTaggedNameCache(TaxonName name){
748
        if (name.getNameType().isZoological()){
749
            boolean includeMarker =includeInfraSpecificMarkerForZooNames(name);
750
            return getInfraSpeciesTaggedNameCache(name, includeMarker);
756 751
        }else{
757
            return getInfraSpeciesTaggedNameCache(nonViralName, true);
752
            return getInfraSpeciesTaggedNameCache(name, true);
758 753
        }
759 754
    }
760 755

  
756
    protected boolean includeInfraSpecificMarkerForZooNames(TaxonName name){
757
        return ! (name.isAutonym());  //only exclude marker if autonym, see also ZooNameNoMarkerCacheStrategy
758
    }
759

  
761 760
    /**
762 761
     * Creates the tag list for an infraspecific taxon. If include is true the result will contain
763 762
     * the infraspecific marker (e.g. "var.")
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/name/ZooNameNoMarkerCacheStrategy.java
16 16
import org.apache.log4j.Logger;
17 17

  
18 18
import eu.etaxonomy.cdm.model.name.INonViralName;
19
import eu.etaxonomy.cdm.model.name.Rank;
19 20
import eu.etaxonomy.cdm.model.name.TaxonName;
20 21
import eu.etaxonomy.cdm.strategy.cache.TagEnum;
21 22
import eu.etaxonomy.cdm.strategy.cache.TaggedText;
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/cache/name/ZoologicalNameCacheStrategyTest.java
43 43
	private TaxonName subGenusName;
44 44
	private TaxonName speciesName;
45 45
	private TaxonName subSpeciesName;
46
	private TaxonName varName;
46 47
	private TaxonName speciesNameWithInfrGenEpi;
47 48
	private TeamOrPersonBase<?> author;
48 49
	private TeamOrPersonBase<?> exAuthor;
......
53 54
	private final String genusNameString = "Genus";
54 55
	private final String speciesNameString = "Abies alba";
55 56
	private final String subSpeciesNameString = "Abies alba subsp. beta";
56
	private final String speciesNameWithGenusEpiString = "Bacanius (Mullerister) rombophorus (Aube, 1843)";
57
	private final String varietyNameString = "Abies alba var. beta";
58
    private final String speciesNameWithGenusEpiString = "Bacanius (Mullerister) rombophorus (Aube, 1843)";
57 59

  
58 60
	private final String authorString = "L.";
59 61
	private final String exAuthorString = "Exaut.";
......
81 83

  
82 84
		speciesName = TaxonNameFactory.PARSED_ZOOLOGICAL(speciesNameString);
83 85
		subSpeciesName = TaxonNameFactory.PARSED_ZOOLOGICAL(subSpeciesNameString);
86
		varName = TaxonNameFactory.PARSED_ZOOLOGICAL(varietyNameString);
84 87
		speciesNameWithInfrGenEpi = TaxonNameFactory.PARSED_ZOOLOGICAL(speciesNameWithGenusEpiString);
85 88
		Assert.assertFalse(speciesName.hasProblem());  //guarantee names are well past
86 89
		Assert.assertFalse(speciesNameWithInfrGenEpi.hasProblem());
......
194 197
	@Test
195 198
	public final void testGetInfraSpeciesNameCache() {
196 199
		assertEquals(subSpeciesNameString, strategy.getNameCache(subSpeciesName));
200
		assertEquals(varietyNameString, strategy.getNameCache(varName));
197 201
	}
198 202

  
199 203

  

Also available in: Unified diff