(no commit message)
[cdmlib-apps.git] / cdmlib-eflora / src / main / java / eu / etaxonomy / cdm / io / eflora / centralAfrica / checklist / CentralAfricaChecklistReferenceImport.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.io.eflora.centralAfrica.checklist;
11
12 import java.sql.ResultSet;
13 import java.sql.SQLException;
14 import java.util.HashMap;
15 import java.util.HashSet;
16 import java.util.Map;
17 import java.util.Set;
18 import java.util.UUID;
19
20 import org.apache.commons.lang.StringUtils;
21 import org.apache.log4j.Logger;
22 import org.springframework.stereotype.Component;
23
24 import eu.etaxonomy.cdm.api.service.IClassificationService;
25 import eu.etaxonomy.cdm.common.CdmUtils;
26 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
27 import eu.etaxonomy.cdm.io.common.IOValidator;
28 import eu.etaxonomy.cdm.io.common.ResultSetPartitioner;
29 import eu.etaxonomy.cdm.io.common.mapping.DbImportMapping;
30 import eu.etaxonomy.cdm.io.common.mapping.DbImportMarkerMapper;
31 import eu.etaxonomy.cdm.io.common.mapping.DbImportObjectCreationMapper;
32 import eu.etaxonomy.cdm.io.common.mapping.DbImportTaxIncludedInMapper;
33 import eu.etaxonomy.cdm.io.common.mapping.DbNotYetImplementedMapper;
34 import eu.etaxonomy.cdm.io.common.mapping.IMappingImport;
35 import eu.etaxonomy.cdm.io.eflora.centralAfrica.checklist.validation.CentralAfricaChecklistTaxonImportValidator;
36 import eu.etaxonomy.cdm.model.common.CdmBase;
37 import eu.etaxonomy.cdm.model.description.Distribution;
38 import eu.etaxonomy.cdm.model.description.PresenceTerm;
39 import eu.etaxonomy.cdm.model.description.TaxonDescription;
40 import eu.etaxonomy.cdm.model.location.NamedArea;
41 import eu.etaxonomy.cdm.model.location.TdwgArea;
42 import eu.etaxonomy.cdm.model.name.BotanicalName;
43 import eu.etaxonomy.cdm.model.name.Rank;
44 import eu.etaxonomy.cdm.model.reference.Reference;
45 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
46 import eu.etaxonomy.cdm.model.taxon.Taxon;
47 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
48 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
49 import eu.etaxonomy.cdm.model.taxon.Classification;
50 import eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl;
51
52
53 /**
54 * @author a.mueller
55 * @created 20.02.2010
56 * @version 1.0
57 */
58 @Component
59 public class CentralAfricaChecklistReferenceImport extends CentralAfricaChecklistImportBase<Reference> implements IMappingImport<Reference, CentralAfricaChecklistImportState>{
60 private static final Logger logger = Logger.getLogger(CentralAfricaChecklistReferenceImport.class);
61
62 private Map<UUID, Taxon> higherTaxonMap;
63
64 private DbImportMapping mapping;
65
66 private int modCount = 10000;
67 private static final String pluralString = "references";
68 private static final String dbTableName = "checklist";
69 private static final Class cdmTargetClass = TaxonBase.class;
70 private static final String strOrderBy = " ORDER BY source ";
71
72 public CentralAfricaChecklistReferenceImport(){
73 super(pluralString, dbTableName, cdmTargetClass);
74 }
75
76
77
78 /* (non-Javadoc)
79 * @see eu.etaxonomy.cdm.io.erms.ErmsImportBase#getIdQuery()
80 */
81 @Override
82 protected String getIdQuery() {
83 String strQuery = " SELECT DISTINCT source FROM " + dbTableName +
84 strOrderBy;
85 return strQuery;
86 }
87
88
89 /* (non-Javadoc)
90 * @see eu.etaxonomy.cdm.io.erms.ErmsImportBase#getMapping()
91 */
92 protected DbImportMapping getMapping() {
93 if (mapping == null){
94 mapping = new DbImportMapping();
95 mapping.addMapper(DbImportObjectCreationMapper.NewInstance(this, "source", REFERENCE_NAMESPACE));
96 }
97
98 return mapping;
99 }
100
101 /* (non-Javadoc)
102 * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getRecordQuery(eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator)
103 */
104 @Override
105 protected String getRecordQuery(CentralAfricaChecklistImportConfigurator config) {
106 String strSelect = " SELECT DISTINCT source ";
107 String strFrom = " FROM checklist";
108 String strWhere = " WHERE ( source IN (" + ID_LIST_TOKEN + ") )";
109 String strRecordQuery = strSelect + strFrom + strWhere + strOrderBy;
110 return strRecordQuery;
111 }
112
113 /* (non-Javadoc)
114 * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#getRelatedObjectsForPartition(java.sql.ResultSet)
115 */
116 public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs) {
117 Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();
118 return result;
119 }
120
121
122 /* (non-Javadoc)
123 * @see eu.etaxonomy.cdm.io.common.mapping.IMappingImport#createObject(java.sql.ResultSet)
124 */
125 public Reference createObject(ResultSet rs, CentralAfricaChecklistImportState state) throws SQLException {
126 Reference ref = ReferenceFactory.newGeneric();
127 String sourceString = rs.getString("source");
128 ref.setTitle(sourceString);
129 return ref;
130 }
131
132
133 /* (non-Javadoc)
134 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator)
135 */
136 @Override
137 protected boolean doCheck(CentralAfricaChecklistImportState state){
138 IOValidator<CentralAfricaChecklistImportState> validator = new CentralAfricaChecklistTaxonImportValidator();
139 return validator.validate(state);
140 }
141
142
143 /* (non-Javadoc)
144 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator)
145 */
146 protected boolean isIgnore(CentralAfricaChecklistImportState state){
147 return state.getConfig().getDoReferences().equals(IImportConfigurator.DO_REFERENCES.NONE);
148 }
149
150
151
152 }