Revision db183545
Added by Andreas Müller almost 7 years ago
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/homotypicgroup/BasionymRelationCreator.java | ||
---|---|---|
62 | 62 |
|
63 | 63 |
//compare accepted against synonyms |
64 | 64 |
for (Synonym synonym: synonyms){ |
65 |
TaxonName<?, ?> basionym = compareHomotypic(taxon.getName(), synonym.getName());
|
|
65 |
TaxonName basionym = compareHomotypic(taxon.getName(), synonym.getName()); |
|
66 | 66 |
if (basionym != null){ |
67 | 67 |
synonym.setType(SynonymType.HOMOTYPIC_SYNONYM_OF()); |
68 | 68 |
adaptHomotypicGroup(basionym, taxon.getName(), synonym.getName()); |
... | ... | |
75 | 75 |
for (int j = i + 1; j < synonymList.size(); j++){ |
76 | 76 |
Synonym syn1 = synonymList.get(i); |
77 | 77 |
Synonym syn2 = synonymList.get(j); |
78 |
TaxonName<?, ?> basionym = compareHomotypic(syn1.getName(), syn2.getName());
|
|
78 |
TaxonName basionym = compareHomotypic(syn1.getName(), syn2.getName()); |
|
79 | 79 |
if (basionym != null){ |
80 | 80 |
adaptHomotypicGroup(basionym, syn1.getName(), syn2.getName()); |
81 | 81 |
if (taxon.getName().getBasionyms().contains(basionym)){ |
... | ... | |
92 | 92 |
* @param name |
93 | 93 |
* @param name2 |
94 | 94 |
*/ |
95 |
private void adaptHomotypicGroup(TaxonName<?, ?> basionym,
|
|
96 |
TaxonName<?,?> name1, TaxonName<?,?> name2) {
|
|
95 |
private void adaptHomotypicGroup(TaxonName basionym, |
|
96 |
TaxonName name1, TaxonName name2) {
|
|
97 | 97 |
if (basionym.equals(name1)){ |
98 | 98 |
if (!name2.getBasionyms().contains(name1)){ |
99 | 99 |
name2.addBasionym(name1); |
... | ... | |
109 | 109 |
* @param name |
110 | 110 |
* @param name2 |
111 | 111 |
*/ |
112 |
private TaxonName<?,?> compareHomotypic(TaxonName<?,?> name1, TaxonName<?,?> name2) {
|
|
112 |
private TaxonName compareHomotypic(TaxonName name1, TaxonName name2) {
|
|
113 | 113 |
if (name1 == null || name2 == null){ |
114 | 114 |
return null; |
115 | 115 |
} |
116 |
TaxonName<?,?> basionymCandidate = checkAuthors(name1, name2);
|
|
116 |
TaxonName basionymCandidate = checkAuthors(name1, name2); |
|
117 | 117 |
if (basionymCandidate == null){ |
118 | 118 |
return null; |
119 | 119 |
}else{ |
120 |
TaxonName<?,?> newCombinationCandidate
|
|
120 |
TaxonName newCombinationCandidate |
|
121 | 121 |
= basionymCandidate == name1? name2: name1; |
122 | 122 |
boolean isBasionym = compareNameParts(basionymCandidate, newCombinationCandidate); |
123 | 123 |
if (isBasionym){ |
... | ... | |
132 | 132 |
* @param basionymCandiate |
133 | 133 |
* @param newCombinationCandidate |
134 | 134 |
*/ |
135 |
private boolean compareNameParts(TaxonName<?, ?> basionymCandidate,
|
|
136 |
TaxonName<?, ?> newCombinationCandidate) {
|
|
135 |
private boolean compareNameParts(TaxonName basionymCandidate, |
|
136 |
TaxonName newCombinationCandidate) { |
|
137 | 137 |
if (basionymCandidate.isGenusOrSupraGeneric() || newCombinationCandidate.isGenusOrSupraGeneric()){ |
138 | 138 |
return false; |
139 | 139 |
}else if (matchLastNamePart(basionymCandidate, newCombinationCandidate)){ |
... | ... | |
147 | 147 |
* @param name2 |
148 | 148 |
* @return |
149 | 149 |
*/ |
150 |
private TaxonName<?,?> checkAuthors(TaxonName<?, ?> name1, TaxonName<?, ?> name2) {
|
|
150 |
private TaxonName checkAuthors(TaxonName name1, TaxonName name2) {
|
|
151 | 151 |
if (hasBasionymAuthorOf(name1, name2)){ |
152 | 152 |
return name1; |
153 | 153 |
}else if (hasBasionymAuthorOf(name2, name1)){ |
... | ... | |
162 | 162 |
* @param name2 |
163 | 163 |
* @return |
164 | 164 |
*/ |
165 |
private boolean hasBasionymAuthorOf(TaxonName<?,?> name1, TaxonName<?,?> name2) {
|
|
165 |
private boolean hasBasionymAuthorOf(TaxonName name1, TaxonName name2) {
|
|
166 | 166 |
TeamOrPersonBase<?> basAuthor2 = name2.getBasionymAuthorship(); |
167 | 167 |
TeamOrPersonBase<?> combinationAuthor = name1.getCombinationAuthorship(); |
168 | 168 |
TeamOrPersonBase<?> basAuthor1 = name1.getBasionymAuthorship(); |
... | ... | |
198 | 198 |
* @param newCombination |
199 | 199 |
* @return |
200 | 200 |
*/ |
201 |
public static boolean matchLastNamePart(TaxonName<?,?> name1, TaxonName<?,?> name2) {
|
|
201 |
public static boolean matchLastNamePart(TaxonName name1, TaxonName name2) {
|
|
202 | 202 |
String lastNamePart1 = name1.getLastNamePart(); |
203 | 203 |
String lastNamePart2 = name2.getLastNamePart(); |
204 | 204 |
if (lastNamePart1 != null && lastNamePart2 != null){ |
Also available in: Unified diff
ref #6630 and ref #6368 remove generics from TaxonName