Project

General

Profile

« Previous | Next » 

Revision 5f41e9a8

Added by Andreas Müller almost 2 years ago

ref #10081 add nameUsedIn sec source to accepted taxon cache strategy

View differences:

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