Revision 5f41e9a8
Added by Andreas Müller almost 2 years ago
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/taxon/TaxonBaseDefaultCacheStrategy.java | ||
---|---|---|
87 | 87 |
if (!secTags.isEmpty()){ |
88 | 88 |
tags.add(new TaggedText(TagEnum.separator, secSeparator)); |
89 | 89 |
tags.addAll(secTags); |
90 |
List<TaggedText> secNameUsedInSourceTags = getSecNameUsedInSourceTags(taxonBase); |
|
91 |
if (!secNameUsedInSourceTags.isEmpty()){ |
|
92 |
tags.add(new TaggedText(TagEnum.separator, " (sub ")); |
|
93 |
tags.addAll(secNameUsedInSourceTags); |
|
94 |
tags.add(new TaggedText(TagEnum.separator, ")")); |
|
95 |
} |
|
90 | 96 |
}else if (isMisapplication && isBlank(taxonBase.getAppendedPhrase())){ |
91 | 97 |
tags.add(new TaggedText(TagEnum.appendedPhrase, "auct.")); |
92 | 98 |
} |
... | ... | |
114 | 120 |
List<TaggedText> tags = new ArrayList<>(); |
115 | 121 |
TaxonName name = CdmBase.deproxy(taxonBase.getName()); |
116 | 122 |
|
123 |
getNameTags(tags, name, (useNameCache || taxonBase.isUseNameCache())); |
|
124 |
if (isNotBlank(taxonBase.getAppendedPhrase())){ |
|
125 |
tags.add(new TaggedText(TagEnum.appendedPhrase, taxonBase.getAppendedPhrase().trim())); |
|
126 |
} |
|
127 |
return tags; |
|
128 |
} |
|
129 |
|
|
130 |
private List<TaggedText> getNameTags(List<TaggedText> tags, TaxonName name, boolean useNameCache) { |
|
117 | 131 |
if (name != null){ |
118 | 132 |
INameCacheStrategy nameCacheStrategy = name.cacheStrategy(); |
119 |
useNameCache = (useNameCache || taxonBase.isUseNameCache()) && name.isNonViral() && nameCacheStrategy instanceof INonViralNameCacheStrategy;
|
|
133 |
useNameCache = useNameCache && name.isNonViral() && nameCacheStrategy instanceof INonViralNameCacheStrategy;
|
|
120 | 134 |
if (useNameCache){ |
121 | 135 |
INonViralNameCacheStrategy nvnCacheStrategy = (INonViralNameCacheStrategy)nameCacheStrategy; |
122 | 136 |
List<TaggedText> nameCacheTags = nvnCacheStrategy.getTaggedName(name); |
... | ... | |
127 | 141 |
List<TaggedText> statusTags = nameCacheStrategy.getNomStatusTags(name, true, true); |
128 | 142 |
tags.addAll(statusTags); |
129 | 143 |
} |
130 |
if (isNotBlank(taxonBase.getAppendedPhrase())){ |
|
131 |
tags.add(new TaggedText(TagEnum.appendedPhrase, taxonBase.getAppendedPhrase().trim())); |
|
132 |
} |
|
133 | 144 |
} |
134 | 145 |
|
135 | 146 |
return tags; |
136 | 147 |
} |
137 | 148 |
|
149 |
private List<TaggedText> getSecNameUsedInSourceTags(T taxonBase) { |
|
150 |
List<TaggedText> tags = new ArrayList<>(); |
|
151 |
if (taxonBase.getSecSource()!=null && taxonBase.getSecSource().getNameUsedInSource() != null) { |
|
152 |
//if names are equal there is no need for now to show the "sub" name |
|
153 |
if (!taxonBase.getSecSource().getNameUsedInSource().equals(taxonBase.getName())) { |
|
154 |
getNameTags(tags, taxonBase.getSecSource().getNameUsedInSource(), true); |
|
155 |
} |
|
156 |
} |
|
157 |
return tags; |
|
158 |
} |
|
159 |
|
|
160 |
|
|
138 | 161 |
private List<TaggedText> getSecundumTags(T taxonBase, boolean isMisapplication) { |
139 | 162 |
List<TaggedText> tags = new ArrayList<>(); |
140 | 163 |
|
Also available in: Unified diff
ref #10081 add nameUsedIn sec source to accepted taxon cache strategy