From 80d6ae1042a8f43b9beed5cadfc04ff583383868 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andreas=20M=C3=BCller?= Date: Wed, 16 Jul 2008 08:19:00 +0000 Subject: [PATCH] --- .../BerlinModelTaxonNameRelationIO.java | 15 ++- .../cdm/io/tcs/TcsImportConfigurator.java | 1 - .../eu/etaxonomy/cdm/io/tcs/TcsTaxonIO.java | 40 ++++++- .../etaxonomy/cdm/io/tcs/TcsTransformer.java | 109 ++++-------------- 4 files changed, 71 insertions(+), 94 deletions(-) diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/BerlinModelTaxonNameRelationIO.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/BerlinModelTaxonNameRelationIO.java index a0041f835c..2b99d2fa08 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/BerlinModelTaxonNameRelationIO.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/BerlinModelTaxonNameRelationIO.java @@ -7,6 +7,8 @@ import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_IS import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_IS_REJECTED_TYPE_OF; import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_IS_REPLACED_SYNONYM_FOR; import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_IS_TYPE_OF; +import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_IS_LECTOTYPE_OF; +import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_TYPE_NOT_DESIGNATED; import java.sql.ResultSet; import java.sql.SQLException; @@ -92,12 +94,21 @@ public class BerlinModelTaxonNameRelationIO extends BerlinModelIOBase { String rule = null; //TODO nameFrom.addRelationshipToName(nameTo, NameRelationshipType.REPLACED_SYNONYM(), rule) ; //TODO reference - }else if (relQualifierFk == NAME_REL_IS_TYPE_OF || relQualifierFk == NAME_REL_IS_REJECTED_TYPE_OF || relQualifierFk == NAME_REL_IS_CONSERVED_TYPE_OF ){ + }else if (relQualifierFk == NAME_REL_IS_TYPE_OF || relQualifierFk == NAME_REL_IS_REJECTED_TYPE_OF || relQualifierFk == NAME_REL_IS_CONSERVED_TYPE_OF || relQualifierFk == NAME_REL_IS_LECTOTYPE_OF || relQualifierFk == NAME_REL_TYPE_NOT_DESIGNATED ){ //TODO String originalNameString = null; boolean isRejectedType = (relQualifierFk == NAME_REL_IS_REJECTED_TYPE_OF); boolean isConservedType = (relQualifierFk == NAME_REL_IS_CONSERVED_TYPE_OF); - nameTo.addNameTypeDesignation(nameFrom, citation, microcitation, originalNameString, isRejectedType, isConservedType); + boolean isLectoType = (relQualifierFk == NAME_REL_IS_LECTOTYPE_OF); + boolean isNotDesignated = (relQualifierFk == NAME_REL_TYPE_NOT_DESIGNATED); + + ReferenceBase lectoReference = null; + String microReferenceBase = null; + if (isLectoType){ + lectoReference = citation; + microReferenceBase = microcitation; + } + nameTo.addNameTypeDesignation(nameFrom, citation, microcitation, originalNameString, isRejectedType, isConservedType, isLectoType, lectoReference, microReferenceBase, isNotDesignated); }else if (relQualifierFk == NAME_REL_IS_ORTHOGRAPHIC_VARIANT_OF){ String rule = null; //TODO nameFrom.addRelationshipToName(nameTo, NameRelationshipType.ORTHOGRAPHIC_VARIANT(), rule) ; diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsImportConfigurator.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsImportConfigurator.java index 0ffb87c61a..f25ae83059 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsImportConfigurator.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsImportConfigurator.java @@ -33,7 +33,6 @@ public class TcsImportConfigurator extends ImportConfiguratorBase implements IIm iCdmIoArray = new ICdmIO []{ new TcsReferenceIO(false) , new TcsTaxonNameIO(! this.isDoTaxonNames()) - , new TcsTaxonNameIO(! this.isDoTaxonNames()) , new TcsTaxonNameRelationsIO(! this.isDoRelNames()) , new TcsTaxonIO(! this.isDoTaxa()) , new TcsTaxonRelationsIO(! this.isDoRelTaxa()) diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsTaxonIO.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsTaxonIO.java index abefdcb81b..b9d8983da1 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsTaxonIO.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsTaxonIO.java @@ -27,6 +27,13 @@ import eu.etaxonomy.cdm.io.common.IImportConfigurator; import eu.etaxonomy.cdm.io.common.MapWrapper; import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.common.RelationshipTermBase; +import eu.etaxonomy.cdm.model.description.DescriptionBase; +import eu.etaxonomy.cdm.model.description.DescriptionElementBase; +import eu.etaxonomy.cdm.model.description.Distribution; +import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase; +import eu.etaxonomy.cdm.model.description.PresenceTerm; +import eu.etaxonomy.cdm.model.location.NamedArea; +import eu.etaxonomy.cdm.model.location.TdwgArea; import eu.etaxonomy.cdm.model.name.TaxonNameBase; import eu.etaxonomy.cdm.model.reference.Generic; import eu.etaxonomy.cdm.model.reference.ReferenceBase; @@ -90,6 +97,9 @@ public class TcsTaxonIO extends CdmIoBase implements ICdmIO { Namespace taxonConceptNamespace = root.getNamespace(prefix); prefix = "tcom"; Namespace commonNamespace = root.getNamespace(prefix); + prefix = "tgeo"; + Namespace geoNamespace = root.getNamespace(prefix); + xmlElementName = "TaxonConcept"; elementNamespace = taxonConceptNamespace; @@ -98,7 +108,7 @@ public class TcsTaxonIO extends CdmIoBase implements ICdmIO { ITaxonService taxonService = cdmApp.getTaxonService(); int i = 0; - //for each taxonName + //for each taxonConcept for (Element elTaxonConcept : elTaxonConcepts){ if ((i++ % modCount) == 0){ logger.info("Taxa handled: " + (i-1));} @@ -135,6 +145,7 @@ public class TcsTaxonIO extends CdmIoBase implements ICdmIO { // cdmAttrName = "isPrimary"; // Boolean primary = ImportHelper.addXmlBooleanValue(elTaxonConcept, taxon, xmlElementName, elementNamespace, cdmAttrName); + makeGeo(elTaxonConcept, geoNamespace, rdfNamespace); taxonMap.put(taxonAbout, taxonBase); } @@ -146,7 +157,7 @@ public class TcsTaxonIO extends CdmIoBase implements ICdmIO { } - private static boolean hasIsSynonymRelation(Element taxonConcept, Namespace rdfNamespace){ + private boolean hasIsSynonymRelation(Element taxonConcept, Namespace rdfNamespace){ boolean result = false; if (taxonConcept == null || ! "TaxonConcept".equalsIgnoreCase(taxonConcept.getName()) ){ return false; @@ -166,4 +177,29 @@ public class TcsTaxonIO extends CdmIoBase implements ICdmIO { return result; } + private boolean makeGeo(Element elConcept, Namespace geoNamespace, Namespace rdfNamespace){ + boolean result = true; + String xmlElementName = "code"; + List elGeos = elConcept.getChildren(xmlElementName, geoNamespace); + + int i = 0; + //for each geoTag + for (Element elGeo : elGeos){ + if ((i++ % modCount) == 0){ logger.info("Geocodes handled: " + (i-1));} + + String strGeoRegion = elGeo.getAttributeValue("resource", rdfNamespace); + strGeoRegion = strGeoRegion.replace("http://rs.tdwg.org/ontology/voc/GeographicRegion#", ""); + NamedArea namedArea = TdwgArea.getAreaByTdwgLabel(strGeoRegion); + PresenceAbsenceTermBase status = null; + DescriptionElementBase distribution = Distribution.NewInstance(namedArea, status); + + System.out.println(namedArea); + + + } + // + + return result; + } + } diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsTransformer.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsTransformer.java index 8714862104..df6647469f 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsTransformer.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcs/TcsTransformer.java @@ -4,6 +4,7 @@ import org.apache.log4j.Logger; import eu.etaxonomy.cdm.model.common.RelationshipBase; import eu.etaxonomy.cdm.model.common.RelationshipTermBase; +import eu.etaxonomy.cdm.model.location.NamedArea; import eu.etaxonomy.cdm.model.name.NomenclaturalCode; import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType; import eu.etaxonomy.cdm.model.name.Rank; @@ -16,96 +17,7 @@ import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException; public final class TcsTransformer { private static final Logger logger = Logger.getLogger(TcsTransformer.class); - //REFERENCES - public static int REF_ARTICLE = 1; - public static int REF_PART_OF_OTHER_TITLE = 2; - public static int REF_BOOK = 3; - public static int REF_DATABASE = 4; - public static int REF_INFORMAL = 5; - public static int REF_NOT_APPLICABLE = 6; - public static int REF_WEBSITE = 7; - public static int REF_CD = 8; - public static int REF_JOURNAL = 9; - public static int REF_UNKNOWN = 10; - - //NameStatus - public static int NAME_ST_NOM_INVAL = 1; - public static int NAME_ST_NOM_ILLEG = 2; - public static int NAME_ST_NOM_NUD = 3; - public static int NAME_ST_NOM_REJ = 4; - public static int NAME_ST_NOM_REJ_PROP = 5; - public static int NAME_ST_NOM_UTIQUE_REJ = 6; - public static int NAME_ST_NOM_UTIQUE_REJ_PROP = 7; - public static int NAME_ST_NOM_CONS = 8; - public static int NAME_ST_NOM_CONS_PROP = 9; - public static int NAME_ST_ORTH_CONS = 10; - public static int NAME_ST_ORTH_CONS_PROP = 11; - public static int NAME_ST_NOM_SUPERFL = 12; - public static int NAME_ST_NOM_AMBIG = 13; - public static int NAME_ST_NOM_PROVIS = 14; - public static int NAME_ST_NOM_DUB = 15; - public static int NAME_ST_NOM_NOV = 16; - public static int NAME_ST_NOM_CONFUS = 17; - public static int NAME_ST_NOM_ALTERN = 18; - public static int NAME_ST_COMB_INVAL = 19; - - - //NameRelationShip - public static int NAME_REL_IS_BASIONYM_FOR = 1; - public static int NAME_REL_IS_LATER_HOMONYM_OF = 2; - public static int NAME_REL_IS_REPLACED_SYNONYM_FOR = 3; - public static int NAME_REL_IS_VALIDATION_OF = 4; - public static int NAME_REL_IS_LATER_VALIDATION_OF = 5; - public static int NAME_REL_IS_TYPE_OF = 6; - public static int NAME_REL_IS_CONSERVED_TYPE_OF =7; - public static int NAME_REL_IS_REJECTED_TYPE_OF = 8; - public static int NAME_REL_IS_FIRST_PARENT_OF = 9; - public static int NAME_REL_IS_SECOND_PARENT_OF = 10; - public static int NAME_REL_IS_FEMALE_PARENT_OF = 11; - public static int NAME_REL_IS_MALE_PARENT_OF = 12; - public static int NAME_REL_IS_CONSERVED_AGAINST =13; - public static int NAME_REL_IS_REJECTED_IN_FAVOUR_OF = 14; - public static int NAME_REL_IS_TREATED_AS_LATER_HOMONYM_OF = 15; - public static int NAME_REL_IS_ORTHOGRAPHIC_VARIANT_OF = 16; - public static int NAME_REL_HAS_SAME_TYPE_AS = 18; - public static int NAME_REL_IS_LECTOTYPE_OF = 61; - public static int NAME_REL_TYPE_NOT_DESIGNATED = 62; - - //NameFacts - public static String NAME_FACT_PROTOLOGUE = "Protologue"; - public static String NAME_FACT_ALSO_PUBLISHED_IN = "Also published in"; - - //TaxonRelationShip - public static int TAX_REL_IS_INCLUDED_IN = 1; - public static int TAX_REL_IS_SYNONYM_OF = 2; - public static int TAX_REL_IS_MISAPPLIED_NAME_OF = 3; - public static int TAX_REL_IS_HETEROTYPIC_SYNONYM_OF = 6; - public static int TAX_REL_IS_HOMOTYPIC_SYNONYM_OF = 7; - - - //TaxonStatus - public static int T_STATUS_ACCEPTED = 1; - public static int T_STATUS_SYNONYM = 2; - public static int T_STATUS_PARTIAL_SYN = 3; - public static int T_STATUS_PRO_PARTE_SYN = 4; - public static int T_STATUS_UNRESOLVED = 5; - public static int T_STATUS_ORPHANED = 6; - - - //Facts - public static int FACT_DESCRIPTION = 1; - public static int FACT_GROWTH_FORM = 2; - public static int FACT_HARDINESS = 3; - public static int FACT_ECOLOGY = 4; - public static int FACT_PHENOLOGY = 5; - public static int FACT_KARYOLOGY = 6; - public static int FACT_ILLUSTRATION = 7; - public static int FACT_IDENTIFICATION = 8; - public static int FACT_OBSERVATION = 9; - public static int FACT_DISTIRBUTION_EM = 10; - public static int FACT_DISTIRBUTION_WORLD = 11; - //TypeDesignation public static TypeDesignationStatus typeStatusId2TypeStatus (int typeStatusId) throws UnknownCdmTypeException{ switch (typeStatusId){ @@ -318,4 +230,23 @@ public final class TcsTransformer { } } +// +// /** Creates an NameArea by a TDWG Label +// */ +// public static NamedArea strTdwgArea2NamedArea (String tdwgArea) throws UnknownCdmTypeException{ +// +// if (tdwgArea == null){ return null; +// }else if ("Valid".equalsIgnoreCase(tdwgArea)){return NamedArea.VALID(); +// +// }else if ("Alternative".equalsIgnoreCase(tdwgArea)){return NamedArea.ALTERNATIVE(); +// }else if ("nom. altern.".equalsIgnoreCase(tdwgArea)){return NamedArea.ALTERNATIVE(); +// +// }else if ("Provisional".equalsIgnoreCase(tdwgArea)){return NamedArea.PROVISIONAL(); +// }else if ("nom. provis.".equalsIgnoreCase(tdwgArea)){return NamedArea.PROVISIONAL(); +// } +// else { +// throw new UnknownCdmTypeException("Unknown Nomenclatural status type " + nomStatus); +// } +// } + } -- 2.34.1