import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_IS_REJECTED_TYPE_OF;\r
import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_IS_REPLACED_SYNONYM_FOR;\r
import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_IS_TYPE_OF;\r
+import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_IS_LECTOTYPE_OF;\r
+import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.NAME_REL_TYPE_NOT_DESIGNATED;\r
\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
String rule = null; //TODO\r
nameFrom.addRelationshipToName(nameTo, NameRelationshipType.REPLACED_SYNONYM(), rule) ;\r
//TODO reference\r
- }else if (relQualifierFk == NAME_REL_IS_TYPE_OF || relQualifierFk == NAME_REL_IS_REJECTED_TYPE_OF || relQualifierFk == NAME_REL_IS_CONSERVED_TYPE_OF ){\r
+ }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 ){\r
//TODO\r
String originalNameString = null;\r
boolean isRejectedType = (relQualifierFk == NAME_REL_IS_REJECTED_TYPE_OF);\r
boolean isConservedType = (relQualifierFk == NAME_REL_IS_CONSERVED_TYPE_OF);\r
- nameTo.addNameTypeDesignation(nameFrom, citation, microcitation, originalNameString, isRejectedType, isConservedType);\r
+ boolean isLectoType = (relQualifierFk == NAME_REL_IS_LECTOTYPE_OF);\r
+ boolean isNotDesignated = (relQualifierFk == NAME_REL_TYPE_NOT_DESIGNATED);\r
+ \r
+ ReferenceBase lectoReference = null;\r
+ String microReferenceBase = null;\r
+ if (isLectoType){\r
+ lectoReference = citation;\r
+ microReferenceBase = microcitation;\r
+ }\r
+ nameTo.addNameTypeDesignation(nameFrom, citation, microcitation, originalNameString, isRejectedType, isConservedType, isLectoType, lectoReference, microReferenceBase, isNotDesignated);\r
}else if (relQualifierFk == NAME_REL_IS_ORTHOGRAPHIC_VARIANT_OF){\r
String rule = null; //TODO\r
nameFrom.addRelationshipToName(nameTo, NameRelationshipType.ORTHOGRAPHIC_VARIANT(), rule) ;\r
import eu.etaxonomy.cdm.io.common.MapWrapper;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.RelationshipTermBase;\r
+import eu.etaxonomy.cdm.model.description.DescriptionBase;\r
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
+import eu.etaxonomy.cdm.model.description.Distribution;\r
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
+import eu.etaxonomy.cdm.model.description.PresenceTerm;\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.cdm.model.location.TdwgArea;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.reference.Generic;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
Namespace taxonConceptNamespace = root.getNamespace(prefix);\r
prefix = "tcom";\r
Namespace commonNamespace = root.getNamespace(prefix);\r
+ prefix = "tgeo";\r
+ Namespace geoNamespace = root.getNamespace(prefix);\r
+\r
\r
xmlElementName = "TaxonConcept";\r
elementNamespace = taxonConceptNamespace;\r
ITaxonService taxonService = cdmApp.getTaxonService();\r
\r
int i = 0;\r
- //for each taxonName\r
+ //for each taxonConcept\r
for (Element elTaxonConcept : elTaxonConcepts){\r
if ((i++ % modCount) == 0){ logger.info("Taxa handled: " + (i-1));}\r
\r
// cdmAttrName = "isPrimary";\r
// Boolean primary = ImportHelper.addXmlBooleanValue(elTaxonConcept, taxon, xmlElementName, elementNamespace, cdmAttrName);\r
\r
+ makeGeo(elTaxonConcept, geoNamespace, rdfNamespace);\r
taxonMap.put(taxonAbout, taxonBase);\r
\r
}\r
}\r
\r
\r
- private static boolean hasIsSynonymRelation(Element taxonConcept, Namespace rdfNamespace){\r
+ private boolean hasIsSynonymRelation(Element taxonConcept, Namespace rdfNamespace){\r
boolean result = false;\r
if (taxonConcept == null || ! "TaxonConcept".equalsIgnoreCase(taxonConcept.getName()) ){\r
return false;\r
return result;\r
}\r
\r
+ private boolean makeGeo(Element elConcept, Namespace geoNamespace, Namespace rdfNamespace){\r
+ boolean result = true;\r
+ String xmlElementName = "code";\r
+ List<Element> elGeos = elConcept.getChildren(xmlElementName, geoNamespace);\r
+\r
+ int i = 0;\r
+ //for each geoTag\r
+ for (Element elGeo : elGeos){\r
+ if ((i++ % modCount) == 0){ logger.info("Geocodes handled: " + (i-1));}\r
+ \r
+ String strGeoRegion = elGeo.getAttributeValue("resource", rdfNamespace);\r
+ strGeoRegion = strGeoRegion.replace("http://rs.tdwg.org/ontology/voc/GeographicRegion#", "");\r
+ NamedArea namedArea = TdwgArea.getAreaByTdwgLabel(strGeoRegion);\r
+ PresenceAbsenceTermBase status = null;\r
+ DescriptionElementBase distribution = Distribution.NewInstance(namedArea, status);\r
+ \r
+ System.out.println(namedArea);\r
+ \r
+ \r
+ }\r
+ //<tgeo:code rdf:resource="http://rs.tdwg.org/ontology/voc/GeographicRegion#ECU"/>\r
+\r
+ return result;\r
+ }\r
+ \r
}\r
\r
import eu.etaxonomy.cdm.model.common.RelationshipBase;\r
import eu.etaxonomy.cdm.model.common.RelationshipTermBase;\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
public final class TcsTransformer {\r
private static final Logger logger = Logger.getLogger(TcsTransformer.class);\r
\r
- //REFERENCES\r
- public static int REF_ARTICLE = 1;\r
- public static int REF_PART_OF_OTHER_TITLE = 2;\r
- public static int REF_BOOK = 3;\r
- public static int REF_DATABASE = 4;\r
- public static int REF_INFORMAL = 5;\r
- public static int REF_NOT_APPLICABLE = 6;\r
- public static int REF_WEBSITE = 7;\r
- public static int REF_CD = 8;\r
- public static int REF_JOURNAL = 9;\r
- public static int REF_UNKNOWN = 10;\r
\r
- \r
- //NameStatus\r
- public static int NAME_ST_NOM_INVAL = 1;\r
- public static int NAME_ST_NOM_ILLEG = 2;\r
- public static int NAME_ST_NOM_NUD = 3;\r
- public static int NAME_ST_NOM_REJ = 4;\r
- public static int NAME_ST_NOM_REJ_PROP = 5;\r
- public static int NAME_ST_NOM_UTIQUE_REJ = 6;\r
- public static int NAME_ST_NOM_UTIQUE_REJ_PROP = 7;\r
- public static int NAME_ST_NOM_CONS = 8;\r
- public static int NAME_ST_NOM_CONS_PROP = 9;\r
- public static int NAME_ST_ORTH_CONS = 10;\r
- public static int NAME_ST_ORTH_CONS_PROP = 11;\r
- public static int NAME_ST_NOM_SUPERFL = 12;\r
- public static int NAME_ST_NOM_AMBIG = 13;\r
- public static int NAME_ST_NOM_PROVIS = 14;\r
- public static int NAME_ST_NOM_DUB = 15;\r
- public static int NAME_ST_NOM_NOV = 16;\r
- public static int NAME_ST_NOM_CONFUS = 17;\r
- public static int NAME_ST_NOM_ALTERN = 18;\r
- public static int NAME_ST_COMB_INVAL = 19;\r
- \r
- \r
- //NameRelationShip\r
- public static int NAME_REL_IS_BASIONYM_FOR = 1;\r
- public static int NAME_REL_IS_LATER_HOMONYM_OF = 2;\r
- public static int NAME_REL_IS_REPLACED_SYNONYM_FOR = 3;\r
- public static int NAME_REL_IS_VALIDATION_OF = 4;\r
- public static int NAME_REL_IS_LATER_VALIDATION_OF = 5;\r
- public static int NAME_REL_IS_TYPE_OF = 6;\r
- public static int NAME_REL_IS_CONSERVED_TYPE_OF =7;\r
- public static int NAME_REL_IS_REJECTED_TYPE_OF = 8;\r
- public static int NAME_REL_IS_FIRST_PARENT_OF = 9;\r
- public static int NAME_REL_IS_SECOND_PARENT_OF = 10;\r
- public static int NAME_REL_IS_FEMALE_PARENT_OF = 11;\r
- public static int NAME_REL_IS_MALE_PARENT_OF = 12;\r
- public static int NAME_REL_IS_CONSERVED_AGAINST =13;\r
- public static int NAME_REL_IS_REJECTED_IN_FAVOUR_OF = 14;\r
- public static int NAME_REL_IS_TREATED_AS_LATER_HOMONYM_OF = 15;\r
- public static int NAME_REL_IS_ORTHOGRAPHIC_VARIANT_OF = 16;\r
- public static int NAME_REL_HAS_SAME_TYPE_AS = 18;\r
- public static int NAME_REL_IS_LECTOTYPE_OF = 61;\r
- public static int NAME_REL_TYPE_NOT_DESIGNATED = 62;\r
- \r
- //NameFacts\r
- public static String NAME_FACT_PROTOLOGUE = "Protologue";\r
- public static String NAME_FACT_ALSO_PUBLISHED_IN = "Also published in";\r
- \r
- //TaxonRelationShip\r
- public static int TAX_REL_IS_INCLUDED_IN = 1;\r
- public static int TAX_REL_IS_SYNONYM_OF = 2;\r
- public static int TAX_REL_IS_MISAPPLIED_NAME_OF = 3;\r
- public static int TAX_REL_IS_HETEROTYPIC_SYNONYM_OF = 6;\r
- public static int TAX_REL_IS_HOMOTYPIC_SYNONYM_OF = 7;\r
- \r
-\r
- //TaxonStatus\r
- public static int T_STATUS_ACCEPTED = 1;\r
- public static int T_STATUS_SYNONYM = 2;\r
- public static int T_STATUS_PARTIAL_SYN = 3;\r
- public static int T_STATUS_PRO_PARTE_SYN = 4;\r
- public static int T_STATUS_UNRESOLVED = 5;\r
- public static int T_STATUS_ORPHANED = 6;\r
- \r
- \r
- //Facts\r
- public static int FACT_DESCRIPTION = 1;\r
- public static int FACT_GROWTH_FORM = 2;\r
- public static int FACT_HARDINESS = 3;\r
- public static int FACT_ECOLOGY = 4;\r
- public static int FACT_PHENOLOGY = 5;\r
- public static int FACT_KARYOLOGY = 6;\r
- public static int FACT_ILLUSTRATION = 7;\r
- public static int FACT_IDENTIFICATION = 8;\r
- public static int FACT_OBSERVATION = 9;\r
- public static int FACT_DISTIRBUTION_EM = 10;\r
- public static int FACT_DISTIRBUTION_WORLD = 11;\r
- \r
//TypeDesignation\r
public static TypeDesignationStatus typeStatusId2TypeStatus (int typeStatusId) throws UnknownCdmTypeException{\r
switch (typeStatusId){\r
}\r
}\r
\r
+// \r
+// /** Creates an NameArea by a TDWG Label\r
+// */\r
+// public static NamedArea strTdwgArea2NamedArea (String tdwgArea) throws UnknownCdmTypeException{\r
+// \r
+// if (tdwgArea == null){ return null;\r
+// }else if ("Valid".equalsIgnoreCase(tdwgArea)){return NamedArea.VALID();\r
+// \r
+// }else if ("Alternative".equalsIgnoreCase(tdwgArea)){return NamedArea.ALTERNATIVE();\r
+// }else if ("nom. altern.".equalsIgnoreCase(tdwgArea)){return NamedArea.ALTERNATIVE();\r
+// \r
+// }else if ("Provisional".equalsIgnoreCase(tdwgArea)){return NamedArea.PROVISIONAL();\r
+// }else if ("nom. provis.".equalsIgnoreCase(tdwgArea)){return NamedArea.PROVISIONAL();\r
+// }\r
+// else {\r
+// throw new UnknownCdmTypeException("Unknown Nomenclatural status type " + nomStatus);\r
+// }\r
+// }\r
+ \r
}\r