Revision d7919b1c
Added by Andreas Müller about 7 years ago
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/parser/NonViralNameParserImpl.java | ||
---|---|---|
31 | 31 |
import eu.etaxonomy.cdm.model.name.HybridRelationship; |
32 | 32 |
import eu.etaxonomy.cdm.model.name.HybridRelationshipType; |
33 | 33 |
import eu.etaxonomy.cdm.model.name.INonViralName; |
34 |
import eu.etaxonomy.cdm.model.name.IZoologicalName; |
|
34 | 35 |
import eu.etaxonomy.cdm.model.name.NomenclaturalCode; |
35 | 36 |
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus; |
36 | 37 |
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType; |
... | ... | |
69 | 70 |
} |
70 | 71 |
|
71 | 72 |
@Override |
72 |
public NonViralName parseSimpleName(String simpleName){ |
|
73 |
public INonViralName parseSimpleName(String simpleName){
|
|
73 | 74 |
return parseSimpleName(simpleName, null, null); |
74 | 75 |
} |
75 | 76 |
|
76 | 77 |
@Override |
77 |
public NonViralName parseSimpleName(String simpleName, NomenclaturalCode code, Rank rank){ |
|
78 |
public INonViralName parseSimpleName(String simpleName, NomenclaturalCode code, Rank rank){
|
|
78 | 79 |
//"parseSimpleName() not yet implemented. Uses parseFullName() instead"); |
79 | 80 |
return parseFullName(simpleName, code, rank); |
80 | 81 |
} |
81 | 82 |
|
82 |
public void parseSimpleName(NonViralName nameToBeFilled, String simpleNameString, Rank rank, boolean makeEmpty){ |
|
83 |
public void parseSimpleName(INonViralName nameToBeFilled, String simpleNameString, Rank rank, boolean makeEmpty){
|
|
83 | 84 |
//"parseSimpleName() not yet implemented. Uses parseFullName() instead"); |
84 | 85 |
parseFullName(nameToBeFilled, simpleNameString, rank, makeEmpty); |
85 | 86 |
} |
86 | 87 |
|
87 |
public NonViralName getNonViralNameInstance(String fullString, NomenclaturalCode code){ |
|
88 |
public INonViralName getNonViralNameInstance(String fullString, NomenclaturalCode code){
|
|
88 | 89 |
return getNonViralNameInstance(fullString, code, null); |
89 | 90 |
} |
90 | 91 |
|
91 |
public NonViralName getNonViralNameInstance(String fullString, NomenclaturalCode code, Rank rank){ |
|
92 |
NonViralName<?> result = null;
|
|
92 |
public INonViralName getNonViralNameInstance(String fullString, NomenclaturalCode code, Rank rank){
|
|
93 |
INonViralName result = null;
|
|
93 | 94 |
if(code ==null) { |
94 | 95 |
boolean isBotanicalName = anyBotanicFullNamePattern.matcher(fullString).find(); |
95 | 96 |
boolean isZoologicalName = anyZooFullNamePattern.matcher(fullString).find();; |
... | ... | |
145 | 146 |
if (fullReferenceString == null){ |
146 | 147 |
return null; |
147 | 148 |
}else{ |
148 |
NonViralName<?> result = getNonViralNameInstance(fullReferenceString, nomCode, rank);
|
|
149 |
INonViralName result = getNonViralNameInstance(fullReferenceString, nomCode, rank);
|
|
149 | 150 |
parseReferencedName(result, fullReferenceString, rank, MAKE_EMPTY); |
150 |
return result; |
|
151 |
return (NonViralName)result;
|
|
151 | 152 |
} |
152 | 153 |
} |
153 | 154 |
|
... | ... | |
328 | 329 |
|
329 | 330 |
//zoological new combinations should not have a nom. reference to be parsed |
330 | 331 |
if (nameToBeFilled.isInstanceOf(ZoologicalName.class)){ |
331 |
ZoologicalName zooName = CdmBase.deproxy(nameToBeFilled, ZoologicalName.class); |
|
332 |
IZoologicalName zooName = CdmBase.deproxy(nameToBeFilled, ZoologicalName.class);
|
|
332 | 333 |
//is name new combination? |
333 | 334 |
if (zooName.getBasionymAuthorship() != null || zooName.getOriginalPublicationYear() != null){ |
334 | 335 |
ParserProblem parserProblem = ParserProblem.NewCombinationHasPublication; |
... | ... | |
459 | 460 |
yearPart = yearPart.replaceFirst(pStart + yearSeperator, "").trim(); |
460 | 461 |
}else{ |
461 | 462 |
if (nameToBeFilled.isInstanceOf(ZoologicalName.class)){ |
462 |
ZoologicalName zooName = CdmBase.deproxy(nameToBeFilled, ZoologicalName.class); |
|
463 |
IZoologicalName zooName = CdmBase.deproxy(nameToBeFilled, ZoologicalName.class);
|
|
463 | 464 |
yearPart = String.valueOf(zooName.getPublicationYear()); |
464 | 465 |
//continue |
465 | 466 |
}else{ |
... | ... | |
732 | 733 |
} |
733 | 734 |
|
734 | 735 |
@Override |
735 |
public NonViralName parseFullName(String fullNameString){ |
|
736 |
public INonViralName parseFullName(String fullNameString){
|
|
736 | 737 |
return parseFullName(fullNameString, null, null); |
737 | 738 |
} |
738 | 739 |
|
739 | 740 |
@Override |
740 |
public NonViralName parseFullName(String fullNameString, NomenclaturalCode nomCode, Rank rank) { |
|
741 |
public INonViralName parseFullName(String fullNameString, NomenclaturalCode nomCode, Rank rank) {
|
|
741 | 742 |
|
742 | 743 |
if (fullNameString == null){ |
743 | 744 |
return null; |
744 | 745 |
}else{ |
745 |
NonViralName<?> result = getNonViralNameInstance(fullNameString, nomCode, rank);
|
|
746 |
INonViralName result = getNonViralNameInstance(fullNameString, nomCode, rank);
|
|
746 | 747 |
parseFullName(result, fullNameString, rank, false); |
747 | 748 |
return result; |
748 | 749 |
} |
... | ... | |
929 | 930 |
} |
930 | 931 |
nameToBeFilled.setHybridFormula(true); |
931 | 932 |
NomenclaturalCode code = nameToBeFilled.getNomenclaturalCode(); |
932 |
NonViralName<?> firstName = this.parseFullName(firstNameString.trim(), code, rank);
|
|
933 |
NonViralName<?> secondName = this.parseFullName(secondNameString.trim(), code, rank);
|
|
933 |
INonViralName firstName = this.parseFullName(firstNameString.trim(), code, rank);
|
|
934 |
INonViralName secondName = this.parseFullName(secondNameString.trim(), code, rank);
|
|
934 | 935 |
HybridRelationship firstRel = nameToBeFilled.addHybridParent(firstName, HybridRelationshipType.FIRST_PARENT(), null); |
935 | 936 |
HybridRelationship second = nameToBeFilled.addHybridParent(secondName, HybridRelationshipType.SECOND_PARENT(), null); |
936 | 937 |
checkRelationExist(firstRel, existingRelations, notToBeDeleted); |
... | ... | |
1083 | 1084 |
nonViralName.setBasionymAuthorship(authors[2]); |
1084 | 1085 |
nonViralName.setExBasionymAuthorship(authors[3]); |
1085 | 1086 |
if (nonViralName instanceof ZoologicalName){ |
1086 |
ZoologicalName zooName = CdmBase.deproxy(nonViralName, ZoologicalName.class); |
|
1087 |
IZoologicalName zooName = CdmBase.deproxy(nonViralName, ZoologicalName.class);
|
|
1087 | 1088 |
zooName.setPublicationYear(years[0]); |
1088 | 1089 |
zooName.setOriginalPublicationYear(years[2]); |
1089 | 1090 |
} |
... | ... | |
1113 | 1114 |
nameToBeFilled.setBasionymAuthorship(authors[2]); |
1114 | 1115 |
nameToBeFilled.setExBasionymAuthorship(authors[3]); |
1115 | 1116 |
if (nameToBeFilled instanceof ZoologicalName){ |
1116 |
ZoologicalName zooName = (ZoologicalName)nameToBeFilled; |
|
1117 |
IZoologicalName zooName = (ZoologicalName)nameToBeFilled;
|
|
1117 | 1118 |
zooName.setPublicationYear(years[0]); |
1118 | 1119 |
zooName.setOriginalPublicationYear(years[2]); |
1119 | 1120 |
} |
... | ... | |
1439 | 1440 |
} |
1440 | 1441 |
|
1441 | 1442 |
if (nameToBeFilled.isInstanceOf(ZoologicalName.class)){ |
1442 |
ZoologicalName zoologicalName = (ZoologicalName)nameToBeFilled; |
|
1443 |
IZoologicalName zoologicalName = (ZoologicalName)nameToBeFilled;
|
|
1443 | 1444 |
zoologicalName.setBreed(null); |
1444 | 1445 |
zoologicalName.setOriginalPublicationYear(null); |
1445 | 1446 |
} |
Also available in: Unified diff
ref #6362, ref #6365 remove occurrence of NonViralName, BotanicalName, ZoologicalName and others