Project

General

Profile

Download (6.65 KB) Statistics
| Branch: | Revision:
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.ferns;
11

    
12
import java.sql.ResultSet;
13
import java.sql.SQLException;
14
import java.util.HashMap;
15
import java.util.Map;
16

    
17
import org.apache.log4j.Logger;
18
import org.springframework.stereotype.Component;
19

    
20
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
21
import eu.etaxonomy.cdm.io.common.IOValidator;
22
import eu.etaxonomy.cdm.io.common.mapping.DbIgnoreMapper;
23
import eu.etaxonomy.cdm.io.common.mapping.DbImportMapping;
24
import eu.etaxonomy.cdm.io.common.mapping.DbImportStringMapper;
25
import eu.etaxonomy.cdm.io.common.mapping.DbNotYetImplementedMapper;
26
import eu.etaxonomy.cdm.io.common.mapping.IMappingImport;
27
import eu.etaxonomy.cdm.io.eflora.centralAfrica.ferns.validation.CentralAfricaFernsReferenceImportValidator;
28
import eu.etaxonomy.cdm.model.common.CdmBase;
29
import eu.etaxonomy.cdm.model.reference.Reference;
30
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
31

    
32

    
33
/**
34
 * @author a.mueller
35
 * @since 20.02.2010
36
 */
37
@Component
38
public class CentralAfricaFernsReferenceImport  extends CentralAfricaFernsImportBase<Reference> implements IMappingImport<Reference, CentralAfricaFernsImportState>{
39
	private static final Logger logger = Logger.getLogger(CentralAfricaFernsReferenceImport.class);
40
	
41
	private DbImportMapping<?,?> mapping;
42
	
43
	
44
//	private int modCount = 10000;
45
	private static final String pluralString = "references";
46
	private static final String dbTableName = "literature";
47
	private static final Class<?> cdmTargetClass = Reference.class;
48

    
49
	public CentralAfricaFernsReferenceImport(){
50
		super(pluralString, dbTableName, cdmTargetClass);
51
	}
52

    
53

    
54
	
55
	
56
	/* (non-Javadoc)
57
	 * @see eu.etaxonomy.cdm.io.globis.GlobisImportBase#getIdQuery()
58
	 */
59
	@Override
60
	protected String getIdQuery() {
61
		String strRecordQuery = 
62
			" SELECT refID " + 
63
			" FROM " + dbTableName; 
64
		return strRecordQuery;	
65
	}
66

    
67

    
68

    
69

    
70
	/* (non-Javadoc)
71
	 * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getRecordQuery(eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator)
72
	 */
73
	@Override
74
	protected String getRecordQuery(CentralAfricaFernsImportConfigurator config) {
75
		String strRecordQuery = 
76
			" SELECT * " + 
77
			" FROM literature " +
78
			" WHERE ( literature.refId IN (" + ID_LIST_TOKEN + ") )";
79
		return strRecordQuery;
80
	}
81

    
82
	/* (non-Javadoc)
83
	 * @see eu.etaxonomy.cdm.io.globis.GlobisImportBase#getMapping()
84
	 */
85
	protected DbImportMapping getMapping() {
86
		if (mapping == null){
87
			mapping = new DbImportMapping();
88
			
89
//			mapping.addMapper(DbImportObjectCreationMapper.NewInstance(this, "refID", REFERENCE_NAMESPACE)); //id
90
			mapping.addMapper(DbIgnoreMapper.NewInstance("CountryDummy"));
91
			mapping.addMapper(DbNotYetImplementedMapper.NewInstance("CreatedBy"));
92
			mapping.addMapper(DbNotYetImplementedMapper.NewInstance("DateCreated"));
93
			mapping.addMapper(DbNotYetImplementedMapper.NewInstance("DateModified"));
94
			mapping.addMapper(DbNotYetImplementedMapper.NewInstance("ModifiedBy"));
95
			mapping.addMapper(DbImportStringMapper.NewInstance("RefBookTitle", "title", false));
96
			//mapping.addMapper(DbImportTimePeriodMapper.NewInstance("RefDatePublished", "datePublished", false));
97
			mapping.addMapper(DbNotYetImplementedMapper.NewInstance("RefDatePublished"));
98
//			mapping.addMapper(DbImportExtensionTypeCreationMapper.NewInstance(dbIdAttribute, extensionTypeNamespace, dbTermAttribute, dbLabelAttribute, dbLabelAbbrevAttribute)
99
			mapping.addMapper(DbNotYetImplementedMapper.NewInstance("RefIll only"));
100
			mapping.addMapper(DbImportStringMapper.NewInstance("ISSN", "issn", false));
101
			mapping.addMapper(DbNotYetImplementedMapper.NewInstance("RefMarker"));
102
			mapping.addMapper(DbImportStringMapper.NewInstance("RefPages", "pages"));
103
			mapping.addMapper(DbNotYetImplementedMapper.NewInstance("RefPages only"));
104
			
105
			
106
			
107
			Reference ref = null;
108
//			ref.setP
109
			
110
		
111
////			mapping.addMapper(DbImportExtensionMapper.NewInstance("imis_id", GlobisTransformer.IMIS_UUID, "imis", "imis", "imis"));
112
//						
113
//			mapping.addMapper(DbImportTruncatedStringMapper.NewInstance("source_name", "titleCache", "title"));
114
//			mapping.addMapper(DbImportStringMapper.NewInstance("source_abstract", "referenceAbstract"));
115
//			mapping.addMapper(DbImportAnnotationMapper.NewInstance("source_note", AnnotationType.EDITORIAL(), Language.DEFAULT()));
116
//			
117
//			//or as Extension?
118
//			mapping.addMapper(DbImportExtensionMapper.NewInstance("source_link", ExtensionType.URL()));
119
//			
120
//			//not yet implemented
121
//			mapping.addMapper(DbNotYetImplementedMapper.NewInstance("source_type"));
122
//			mapping.addMapper(DbNotYetImplementedMapper.NewInstance("source_orig_fn"));
123

    
124
		}
125
		return mapping;
126
	}
127
	
128
	/* (non-Javadoc)
129
	 * @see eu.etaxonomy.cdm.io.common.mapping.IMappingImport#createObject(java.sql.ResultSet, eu.etaxonomy.cdm.io.common.ImportStateBase)
130
	 */
131
	public Reference createObject(ResultSet rs, CentralAfricaFernsImportState state)
132
			throws SQLException {
133
		Reference ref;
134
		String refType = rs.getString("RefType");
135
		if (refType == null){
136
			ref = ReferenceFactory.newGeneric();
137
		}else if (refType == "book"){
138
			ref = ReferenceFactory.newBook();
139
		}else if (refType == "paper in journal"){
140
			ref = ReferenceFactory.newArticle();
141
		}else if (refType.startsWith("unpublished") ){
142
			ref = ReferenceFactory.newGeneric();
143
		}else if (refType.endsWith("paper in journal")){
144
			ref = ReferenceFactory.newArticle();
145
		}else if (refType == "paper in book"){
146
			ref = ReferenceFactory.newBookSection();
147
		}else if (refType == "paper in journalwebsite"){
148
			ref = ReferenceFactory.newArticle();
149
		}else{
150
			logger.warn("Unknown reference type: " + refType);
151
			ref = ReferenceFactory.newGeneric();
152
		}
153
		return ref;
154
	}
155

    
156

    
157
	@Override
158
	public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, CentralAfricaFernsImportState state) {
159
		Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();
160
		return result;  //not needed
161
	}
162
	
163
	@Override
164
	protected boolean doCheck(CentralAfricaFernsImportState state){
165
		IOValidator<CentralAfricaFernsImportState> validator = new CentralAfricaFernsReferenceImportValidator();
166
		return validator.validate(state);
167
	}
168
	
169
	@Override
170
	protected boolean isIgnore(CentralAfricaFernsImportState state){
171
		//TODO
172
		return state.getConfig().getDoReferences() != IImportConfigurator.DO_REFERENCES.ALL;
173
	}
174

    
175

    
176

    
177

    
178

    
179
}
(4-4/7)