html tagged display name for pesi taxon export
[cdmlib-apps.git] / cdm-pesi / src / main / java / eu / etaxonomy / cdm / io / pesi / erms / ErmsNotesImport.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.pesi.erms;
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
19 import org.apache.log4j.Logger;
20 import org.springframework.stereotype.Component;
21
22 import eu.etaxonomy.cdm.io.common.IOValidator;
23 import eu.etaxonomy.cdm.io.common.mapping.DbImportAnnotationMapper;
24 import eu.etaxonomy.cdm.io.common.mapping.DbImportFeatureCreationMapper;
25 import eu.etaxonomy.cdm.io.common.mapping.DbImportMapping;
26 import eu.etaxonomy.cdm.io.common.mapping.DbImportMultiLanguageTextMapper;
27 import eu.etaxonomy.cdm.io.common.mapping.DbImportTextDataCreationMapper;
28 import eu.etaxonomy.cdm.io.pesi.erms.validation.ErmsNoteImportValidator;
29 import eu.etaxonomy.cdm.model.common.Annotation;
30 import eu.etaxonomy.cdm.model.common.AnnotationType;
31 import eu.etaxonomy.cdm.model.common.CdmBase;
32 import eu.etaxonomy.cdm.model.common.Language;
33 import eu.etaxonomy.cdm.model.description.TextData;
34 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
35
36
37 /**
38 * @author a.mueller
39 * @created 20.02.2010
40 * @version 1.0
41 */
42 @Component
43 public class ErmsNotesImport extends ErmsImportBase<Annotation> {
44 @SuppressWarnings("unused")
45 private static final Logger logger = Logger.getLogger(ErmsNotesImport.class);
46
47 private DbImportMapping mapping;
48
49 private int modCount = 10000;
50 private static final String pluralString = "notes";
51 private static final String dbTableName = "notes";
52 private static final Class cdmTargetClass = TextData.class;
53
54 public ErmsNotesImport(){
55 super(pluralString, dbTableName, cdmTargetClass);
56 }
57
58
59 /* (non-Javadoc)
60 * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getRecordQuery(eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator)
61 */
62 @Override
63 protected String getRecordQuery(ErmsImportConfigurator config) {
64 String strRecordQuery =
65 " SELECT * " +
66 " FROM notes " +
67 " WHERE ( notes.id IN (" + ID_LIST_TOKEN + ") )";
68 return strRecordQuery;
69 }
70
71 /* (non-Javadoc)
72 * @see eu.etaxonomy.cdm.io.erms.ErmsImportBase#getMapping()
73 */
74 protected DbImportMapping getMapping() {
75 if (mapping == null){
76 mapping = new DbImportMapping();
77 mapping.addMapper(DbImportTextDataCreationMapper.NewInstance("id", NOTES_NAMESPACE, "tu_id", TAXON_NAMESPACE));
78 mapping.addMapper(DbImportMultiLanguageTextMapper.NewInstance("note", "lan_id", LANGUAGE_NAMESPACE, "multilanguageText"));
79 Language notesNoteLanguage = null;
80 mapping.addMapper(DbImportAnnotationMapper.NewInstance("note", AnnotationType.EDITORIAL(), notesNoteLanguage));
81 mapping.addMapper(DbImportFeatureCreationMapper.NewInstance("type", FEATURE_NAMESPACE, "type", "type", "type"));
82 }
83 return mapping;
84 }
85
86
87 /* (non-Javadoc)
88 * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#getRelatedObjectsForPartition(java.sql.ResultSet)
89 */
90 public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs) {
91 String nameSpace;
92 Class cdmClass;
93 Set<String> idSet;
94 Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();
95
96 try{
97 Set<String> taxonIdSet = new HashSet<String>();
98 Set<String> languageIdSet = new HashSet<String>();
99 while (rs.next()){
100 handleForeignKey(rs, taxonIdSet, "tu_id");
101 handleForeignKey(rs, languageIdSet, "lan_id");
102 }
103
104 //taxon map
105 nameSpace = ErmsTaxonImport.TAXON_NAMESPACE;
106 cdmClass = TaxonBase.class;
107 idSet = taxonIdSet;
108 Map<String, TaxonBase> taxonMap = (Map<String, TaxonBase>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);
109 result.put(nameSpace, taxonMap);
110
111 //language map
112 nameSpace = LANGUAGE_NAMESPACE;
113 Map<String, Language> languageMap = new HashMap<String, Language>();
114 ErmsTransformer transformer = new ErmsTransformer();
115 for (String lanAbbrev: languageIdSet){
116
117 Language language = transformer.getLanguageByKey(lanAbbrev);
118 languageMap.put(lanAbbrev, language);
119 }
120 result.put(nameSpace, languageMap);
121
122 } catch (SQLException e) {
123 throw new RuntimeException(e);
124 }
125 return result;
126 }
127
128 /* (non-Javadoc)
129 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator)
130 */
131 @Override
132 protected boolean doCheck(ErmsImportState state){
133 IOValidator<ErmsImportState> validator = new ErmsNoteImportValidator();
134 return validator.validate(state);
135 }
136
137
138 /* (non-Javadoc)
139 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator)
140 */
141 protected boolean isIgnore(ErmsImportState state){
142 return ! state.getConfig().isDoNotes();
143 }
144
145
146
147
148
149 }