import java.util.stream.Collectors;
import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.strategy.StrategyBase;
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
@Override
public String getTitleCache(T description) {
String title;
- SpecimenOrObservationBase specimen = description.getDescribedSpecimenOrObservation();
- if (specimen == null){
+ IdentifiableEntity entity = getDescriptionEntity(description);
+ if (entity == null){
title = getFirstPart(description);
title = title.replace(FOR, "");
}else{
- title = specimen.getTitleCache();
+ title = entity.getTitleCache();
title = getFirstPart(description) + title;
}
return title;
}
- protected String getFirstPart(T description){
+ protected abstract IdentifiableEntity getDescriptionEntity(T description);
+
+ protected String getFirstPart(T description){
Set<Marker> markers = description.getMarkers();
MarkerType markerType = MarkerType.USE();
Boolean isUseDescription = false;
}
String firstPart;
if (description.isImageGallery()){
- firstPart = "Image gallery "+getSourceString(description)+" for ";
+ firstPart = "Image gallery"+getSourceString(description);
} else if (isUseDescription) {
- firstPart = "Use description "+getSourceString(description)+" for ";
+ firstPart = "Use description"+getSourceString(description);
} else {
- firstPart = getDescriptionName()+" "+getSourceString(description)+" for ";
+ firstPart = getDescriptionName()+getSourceString(description);
}
return firstPart+FOR;
}
.map(source->source.getCitation().getTitleCache())
.collect(Collectors.joining(","));
if(CdmUtils.isNotBlank(sourceString)){
- sourceString = "from "+sourceString+" ";
+ sourceString = " from "+sourceString+" ";
}
return sourceString;
}
\r
import java.util.UUID;\r
\r
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
import eu.etaxonomy.cdm.model.description.SpecimenDescription;\r
\r
public class SpecimenDescriptionDefaultCacheStrategy extends DescriptionBaseDefaultCacheStrategy<SpecimenDescription> {\r
return "Specimen description";\r
}\r
\r
+ @Override\r
+ protected IdentifiableEntity getDescriptionEntity(SpecimenDescription description) {\r
+ return description.getDescribedSpecimenOrObservation();\r
+ }\r
+\r
}\r
\r
import java.util.UUID;\r
\r
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
\r
public class TaxonDescriptionDefaultCacheStrategy extends DescriptionBaseDefaultCacheStrategy<TaxonDescription>{\r
\r
\r
@Override\r
public String getTitleCache(TaxonDescription taxonDescription) {\r
- String title;\r
- Taxon taxon = taxonDescription.getTaxon();\r
- if (taxon == null){\r
- title = getFirstPart(taxonDescription);\r
- title = title.replace(" for ", "");\r
- }else{\r
- title = taxon.getTitleCache();\r
- int secPos = title.indexOf("sec.");\r
- if (secPos > 2){\r
- title = title.substring(0, secPos).trim();\r
- }\r
- title = getFirstPart(taxonDescription) + title;\r
+ String title = super.getTitleCache(taxonDescription);\r
+ int secPos = title.indexOf("sec.");\r
+ if (secPos > 2){\r
+ title = title.substring(0, secPos).trim();\r
}\r
return title;\r
}\r
\r
@Override\r
protected String getDescriptionName() {\r
- return "Factual Data Set";\r
+ return "Factual data set";\r
+ }\r
+\r
+ @Override\r
+ protected IdentifiableEntity getDescriptionEntity(TaxonDescription description) {\r
+ return description.getTaxon();\r
}\r
\r
}\r
sec.setTitleCache("My sec", true);
Taxon taxon = Taxon.NewInstance(botName, sec);
TaxonDescription taxonDescription = TaxonDescription.NewInstance(taxon);
- Assert.assertEquals("Wrong title cache for description", "Factual data for Genus species", taxonDescription.getTitleCache());
+ Assert.assertEquals("Wrong title cache for description", "Factual data set for Genus species", taxonDescription.generateTitle());
taxonDescription.setImageGallery(true);
- Assert.assertEquals("Wrong title cache for description", "Image gallery for Genus species", taxonDescription.getTitleCache());
+ Assert.assertEquals("Wrong title cache for description", "Image gallery for Genus species", taxonDescription.generateTitle());
taxonDescription = TaxonDescription.NewInstance();
- Assert.assertEquals("Wrong title cache for description", "Factual data", taxonDescription.getTitleCache());
+ Assert.assertEquals("Wrong title cache for description", "Factual data set", taxonDescription.generateTitle());
taxonDescription.setImageGallery(true);
- Assert.assertEquals("Wrong title cache for description", "Image gallery", taxonDescription.getTitleCache());
+ Assert.assertEquals("Wrong title cache for description", "Image gallery", taxonDescription.generateTitle());
}