Project

General

Profile

Download (4.27 KB) Statistics
| Branch: | Tag: | 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
package eu.etaxonomy.cdm.io.faunaEuropaea;
10

    
11
import java.sql.ResultSet;
12
import java.sql.SQLException;
13
import java.util.Map;
14

    
15
import org.apache.log4j.Logger;
16
import org.springframework.stereotype.Component;
17
import org.springframework.transaction.TransactionStatus;
18

    
19
import eu.etaxonomy.cdm.io.common.ICdmIO;
20
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
21
import eu.etaxonomy.cdm.io.common.ImportHelper;
22
import eu.etaxonomy.cdm.io.common.MapWrapper;
23
import eu.etaxonomy.cdm.io.common.Source;
24
import eu.etaxonomy.cdm.model.agent.AgentBase;
25
import eu.etaxonomy.cdm.model.agent.Person;
26
import eu.etaxonomy.cdm.model.agent.Team;
27
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
28
import eu.etaxonomy.cdm.model.common.CdmBase;
29
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
30

    
31

    
32
/**
33
 * @author a.babadshanjan
34
 * @created 12.05.2009
35
 * @version 1.0
36
 */
37
@Component
38
public class FaunaEuropaeaAuthorImport extends FaunaEuropaeaImportBase {
39
	private static final Logger logger = Logger.getLogger(FaunaEuropaeaAuthorImport.class);
40

    
41
	private static int modCount = 1000;
42

    
43
	
44
	/* (non-Javadoc)
45
	 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator)
46
	 */
47
	@Override
48
	protected boolean doCheck(FaunaEuropaeaImportState state){
49
		boolean result = true;
50
		logger.warn("No checking for Authors not implemented");
51
		
52
		return result;
53
	}
54
	
55
	/* (non-Javadoc)
56
	 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doInvoke(eu.etaxonomy.cdm.io.common.IImportConfigurator, eu.etaxonomy.cdm.api.application.CdmApplicationController, java.util.Map)
57
	 */
58
	@Override
59
	protected boolean doInvoke(FaunaEuropaeaImportState state){ 
60
		Map<String, MapWrapper<? extends CdmBase>> stores = state.getStores();
61
		MapWrapper<TeamOrPersonBase> authorStore = (MapWrapper<TeamOrPersonBase>)stores.get(ICdmIO.TEAM_STORE);
62
		TransactionStatus txStatus = null;
63
		
64
		FaunaEuropaeaImportConfigurator fauEuConfig = state.getConfig();
65
		Source source = fauEuConfig.getSource();
66
		
67
		String namespace = "AuthorTeam";
68
		boolean success = true;
69
		
70
		if(logger.isInfoEnabled()) { logger.info("Start making Authors..."); }
71
		
72
		try {
73

    
74
			String strQuery = 
75
				" SELECT *  " +
76
				" FROM author " ;
77
			ResultSet rs = source.getResultSet(strQuery) ;
78

    
79
			int i = 0;
80
			while (rs.next()) {
81

    
82
				if ((i++ % modCount) == 0 && i!= 1 ) { 
83
					if(logger.isInfoEnabled()) {
84
						logger.info("Authors retrieved: " + (i-1)); 
85
					}
86
				}
87

    
88
				int authorId = rs.getInt("aut_id");
89
				String authorName = rs.getString("aut_name");
90

    
91
				TeamOrPersonBase<Team> author = null;
92

    
93
				try {
94
					author = Team.NewInstance();
95
					author.setTitleCache(authorName);
96

    
97
					ImportHelper.setOriginalSource(author, fauEuConfig.getSourceReference(), authorId, namespace);
98

    
99
					if (!authorStore.containsId(authorId)) {
100
						if (author == null) {
101
							logger.warn("Author is null");
102
						}
103
						authorStore.put(authorId, author);
104
						if (logger.isDebugEnabled()) { 
105
							logger.debug("Stored author (" + authorId + ") " + authorName); 
106
						}
107
					} else {
108
						logger.warn("Not imported author with duplicated aut_id (" + authorId + 
109
								") " + authorName);
110
					}
111
				} catch (Exception e) {
112
					logger.warn("An exception occurred when creating author with id " + authorId + 
113
					". Author could not be saved.");
114
				}
115
			}
116
			
117
			if(logger.isInfoEnabled()) { logger.info("Saving authors ..."); }
118

    
119
			txStatus = startTransaction();
120

    
121
			// save authors
122
			getAgentService().saveAgentAll(authorStore.objects());
123

    
124
			commitTransaction(txStatus);
125
			
126
			if(logger.isInfoEnabled()) { logger.info("End making authors ..."); }
127

    
128
			return true;
129

    
130
		} catch (SQLException e) {
131
			logger.error("SQLException:" +  e);
132
			return false;
133
		}
134
	}
135
	
136
	/* (non-Javadoc)
137
	 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator)
138
	 */
139
	protected boolean isIgnore(FaunaEuropaeaImportState state){
140
		return ! state.getConfig().isDoAuthors();
141
	}
142

    
143
}
(1-1/15)