import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
-import java.net.URI;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import javax.xml.transform.TransformerFactoryConfigurationError;
import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.api.service.pager.Pager;
+import eu.etaxonomy.cdm.common.URI;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.name.RankClass;
import eu.etaxonomy.cdm.model.name.TaxonName;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.model.term.TermTree;
import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.model.term.TermTree;
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException;
/**
* @author pkelbert
* @since 2 avr. 2013
- *
*/
public class TaxonXTreatmentExtractor extends TaxonXExtractor{
private static final String PUBLICATION_YEAR = "publicationYear";
- private static final Logger logger = Logger.getLogger(TaxonXTreatmentExtractor.class);
+ private static final Logger logger = LogManager.getLogger();
private static final String notMarkedUp = "Not marked-up";
private static final UUID proIbioTreeUUID = UUID.fromString("2c49f506-c7f7-44de-a8b9-2e695de3769c");
*/
private void buildFeatureTree() {
logger.info("buildFeatureTree");
- TermTree proibiospheretree = importer.getFeatureTreeService().find(proIbioTreeUUID);
+ TermTree<?> proibiospheretree = importer.getTermTreeService().find(proIbioTreeUUID);
if (proibiospheretree == null){
- List<TermTree> trees = importer.getFeatureTreeService().list(TermTree.class, null, null, null, null);
+ List<TermTree> trees = importer.getTermTreeService().list(TermTree.class, null, null, null, null);
if (trees.size()==1) {
TermTree<Feature> ft = trees.get(0);
if (featuresMap==null) {
}
}
}
- proibiospheretree = TermTree.NewInstance();
+ proibiospheretree = TermTree.NewFeatureInstance();
proibiospheretree.setUuid(proIbioTreeUUID);
}
}catch(Exception e){logger.warn("Can't remove child from FeatureTree "+e);}
nbChildren --;
}
-
}
for (Feature feature:featuresMap.values()) {
root2.addChild(feature);
}
- importer.getFeatureTreeService().saveOrUpdate(proibiospheretree);
+ importer.getTermTreeService().saveOrUpdate(proibiospheretree);
}
-
/**
* @param keys
* @param acceptedTaxon: the current acceptedTaxon
* @param nametosave
* @param refMods
* @param insideNodes
- * @param blabla
- * @param j
*/
- @SuppressWarnings({ "rawtypes" })
private String getInlineTextForName(List<TaxonName> nametosave, Reference refMods, Node insideNode) {
if (true){
NodeList children = insideNode.getChildNodes();
}
if (!synonymsSet.contains(synonym) && ! (synoExist)) {
sourceHandler.addSource(refMods, synonym);
- acceptedTaxon.addSynonym(synonym, SynonymType.SYNONYM_OF());
+ acceptedTaxon.addSynonym(synonym, SynonymType.SYNONYM_OF);
}
}
importer.getTaxonService().saveOrUpdate(acceptedTaxon);
if (!synonymsSet.contains(synonym) && ! (synoExist)) {
sourceHandler.addSource(refMods, synonym);
- acceptedTaxon.addSynonym(synonym, SynonymType.SYNONYM_OF());
+ acceptedTaxon.addSynonym(synonym, SynonymType.SYNONYM_OF);
}
}
if (!synonymsSet.contains(synonym) && ! (synoExist)) {
sourceHandler.addSource(refMods, synonym);
- acceptedTaxon.addSynonym(synonym, SynonymType.SYNONYM_OF());
+ acceptedTaxon.addSynonym(synonym, SynonymType.SYNONYM_OF);
}
-
}
-
if (!currentMyName.getIdentifier().isEmpty() && (currentMyName.getIdentifier().length()>2)){
setLSID(currentMyName.getIdentifier(), acceptedTaxon);
}
if (!synonymsSet.contains(synonym) && ! (synoExist)) {
sourceHandler.addSource(refMods, synonym);
- acceptedTaxon.addSynonym(synonym, SynonymType.SYNONYM_OF());
+ acceptedTaxon.addSynonym(synonym, SynonymType.SYNONYM_OF);
}
}
}
}
}
-
-
- /**
- * @param identifier
- * @param acceptedTaxon
- */
- @SuppressWarnings("rawtypes")
private void setLSID(String identifier, TaxonBase<?> taxon) {
//logger.info("setLSID");
// boolean lsidok=false;
} catch (MalformedLSIDException e) {
logger.warn("Malformed LSID");
}
-
}
//logger.info("search reference for LSID");
if (nomenclaturalCode.equals(NomenclaturalCode.ICZN)){
nameTBF = TaxonNameFactory.NewZoologicalInstance(null);
}
- if (nomenclaturalCode.equals(NomenclaturalCode.ICNB)){
+ if (nomenclaturalCode.equals(NomenclaturalCode.ICNP)){
nameTBF= TaxonNameFactory.NewBacterialInstance(null);
}
parser.parseReferencedName(nameTBF, fullname, rank, false);
if (nomenclaturalCode.equals(NomenclaturalCode.ICZN)) {
((ZoologicalName) nameTBF).setAuthorshipCache(currentMyName.getAuthor());
}
- if (nomenclaturalCode.equals(NomenclaturalCode.ICNB)) {
+ if (nomenclaturalCode.equals(NomenclaturalCode.ICNP)) {
((BacterialName) nameTBF).setAuthorshipCache(currentMyName.getAuthor());
}
}
if (nomenclaturalCode.equals(NomenclaturalCode.ICZN)){
nameToBeFilled = TaxonNameFactory.NewZoologicalInstance(null);
}
- if (nomenclaturalCode.equals(NomenclaturalCode.ICNB)){
+ if (nomenclaturalCode.equals(NomenclaturalCode.ICNP)){
nameToBeFilled = TaxonNameFactory.NewBacterialInstance(null);
}
nameToBeFilled.setTitleCache(s, true);
if (atomisedNameStr.length()>fullName.length()) {
newName=atomisedNameStr;
} else {
- if (fullName.length()>atomisedNameStr.length() && (rank.isLower(Rank.SPECIES()) && fullName.length()>2 && !fullName.substring(0, 1).equals("."))) {
+ if (fullName.length()>atomisedNameStr.length() && (rank.isLowerThan(RankClass.Species) && fullName.length()>2 && !fullName.substring(0, 1).equals("."))) {
newName=askWhichScientificName(fullName,atomisedNameStr,classification.getTitleCache(),name);
} else {
newName=fullName;
if (atomisedNameStr.length()>fullName.length()) {
newName = atomisedNameStr;
} else {
- if (fullName.length()>atomisedNameStr.length() && (rank.isLower(Rank.SPECIES()) && fullName.length()>2 && !fullName.substring(0, 1).equals("."))) {
+ if (fullName.length()>atomisedNameStr.length() && (rank.isLowerThan(RankClass.Species) && fullName.length()>2 && !fullName.substring(0, 1).equals("."))) {
newName = askWhichScientificName(fullName, atomisedNameStr, classification.getTitleCache(), name);
} else {
newName = fullName;
} else if(rankListToPrint.contains(nodeName.toLowerCase())) {
atomisedName.add(node.getTextContent().trim());
} else{
- if (rank.isHigher(Rank.GENUS()) && (nodeName.indexOf("dwcranks:")>-1 || nodeName.indexOf("dwc:Family")>-1)) {
+ if (rank.isSupraGeneric() && (nodeName.indexOf("dwcranks:")>-1 || nodeName.indexOf("dwc:Family")>-1)) {
atomisedName.add(node.getTextContent().trim());
}else if (nodeName.equals("#text")){
String text = node.getTextContent();
return fullName;
}
- /**
- * @param rank
- * @param fullName
- * @param atomisedMap
- * @param myname
- * @return
- */
private String extractAuthorFromNames(Rank rank, String name, HashMap<String, String> atomisedMap, MyName myname) {
logger.info("extractAuthorFromNames");
String fullName=name;
if (atomisedMap.get("dwc:scientificnameauthorship") == null && fullName!=null){
// System.out.println("rank : "+rank.toString());
- if(rank.isHigher(Rank.SPECIES())){
+ if(rank.isSupraSpecific()){
try{
String author=null;
if(atomisedMap.get("dwcranks:subgenus") != null) {
TaxonName tnb = tmpb.getName();
Rank crank=null;
if (tnb != null){
- if(globalrank.equals(rank) || (globalrank.isLower(Rank.SPECIES()) && rank.equals(Rank.SPECIES()))){
+ if(globalrank.equals(rank) || (globalrank.isLowerThan(RankClass.Species) && rank.equals(Rank.SPECIES()))){
if (tnb.getTitleCache().split("sec.")[0].trim().equalsIgnoreCase(fullname) ){
crank =tnb.getRank();
if (crank !=null && rank !=null){
tnb.setTitleCache(fullname, true);
// tnb.setGenusOrUninomial(fullname);
}
- if(rank.isHigher(Rank.GENUS())) {
+ if(rank.isSupraGeneric()) {
tnb.setGenusOrUninomial(partialname);
}
- if(rank.isHigher(Rank.SPECIES())) {
+ if(rank.isSupraSpecific()) {
tnb.setTitleCache(partialname, true);
}
@SuppressWarnings("rawtypes")
private Person findOrCreateAuthor(String author2) {
//logger.info("findOrCreateAuthor");
- List<UuidAndTitleCache<Person>> hiberPersons = importer.getAgentService().getPersonUuidAndTitleCache();
+ List<UuidAndTitleCache<Person>> hiberPersons = importer.getAgentService().getUuidAndTitleCache(Person.class, null, null);
for (UuidAndTitleCache<Person> hibernateP:hiberPersons){
if(hibernateP.getTitleCache().equals(author2)) {
AgentBase existing = importer.getAgentService().find(hibernateP.getUuid());