Project

General

Profile

Download (7.69 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.globis;
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.DbImportExtensionMapper;
24
import eu.etaxonomy.cdm.io.common.mapping.DbImportMapping;
25
import eu.etaxonomy.cdm.io.common.mapping.DbImportObjectCreationMapper;
26
import eu.etaxonomy.cdm.io.common.mapping.DbImportStringMapper;
27
import eu.etaxonomy.cdm.io.common.mapping.DbNotYetImplementedMapper;
28
import eu.etaxonomy.cdm.io.common.mapping.IMappingImport;
29
import eu.etaxonomy.cdm.io.globis.validation.GlobisReferenceImportValidator;
30
import eu.etaxonomy.cdm.model.common.CdmBase;
31
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
32
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
33

    
34

    
35
/**
36
 * @author a.mueller
37
 * @created 20.02.2010
38
 * @version 1.0
39
 */
40
@Component
41
public class GlobisReferenceImport  extends GlobisImportBase<ReferenceBase> implements IMappingImport<ReferenceBase, GlobisImportState>{
42
	private static final Logger logger = Logger.getLogger(GlobisReferenceImport.class);
43
	
44
	private DbImportMapping mapping;
45
	
46
	
47
	private int modCount = 10000;
48
	private static final String pluralString = "references";
49
	private static final String dbTableName = "literature";
50
	private static final Class cdmTargetClass = ReferenceBase.class;
51

    
52
	public GlobisReferenceImport(){
53
		super(pluralString, dbTableName, cdmTargetClass);
54
	}
55

    
56

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

    
70

    
71

    
72

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

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

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

    
164
	/* (non-Javadoc)
165
	 * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#getRelatedObjectsForPartition(java.sql.ResultSet)
166
	 */
167
	public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs) {
168
		Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();
169
		return result;  //not needed
170
	}
171
	
172
	/* (non-Javadoc)
173
	 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator)
174
	 */
175
	@Override
176
	protected boolean doCheck(GlobisImportState state){
177
		IOValidator<GlobisImportState> validator = new GlobisReferenceImportValidator();
178
		return validator.validate(state);
179
	}
180
	
181
	
182
	/* (non-Javadoc)
183
	 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator)
184
	 */
185
	protected boolean isIgnore(GlobisImportState state){
186
		//TODO
187
		return state.getConfig().getDoReferences() != IImportConfigurator.DO_REFERENCES.ALL;
188
	}
189

    
190

    
191

    
192

    
193

    
194
}
(4-4/5)