Project

General

Profile

Download (4.65 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.berlinModel.out;
10

    
11
import java.sql.SQLException;
12
import java.util.List;
13

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

    
18
import eu.etaxonomy.cdm.io.berlinModel.out.mapper.CreatedAndNotesMapper;
19
import eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbStringMapper;
20
import eu.etaxonomy.cdm.io.berlinModel.out.mapper.IdMapper;
21
import eu.etaxonomy.cdm.io.common.IExportConfigurator;
22
import eu.etaxonomy.cdm.io.common.Source;
23
import eu.etaxonomy.cdm.model.agent.AgentBase;
24
import eu.etaxonomy.cdm.model.agent.Person;
25
import eu.etaxonomy.cdm.model.agent.Team;
26
import eu.etaxonomy.cdm.model.common.CdmBase;
27

    
28

    
29
/**
30
 * @author a.mueller
31
 * @created 20.03.2008
32
 * @version 1.0
33
 */
34
@Component
35
public class BerlinModelAuthorExport extends BerlinModelExportBase {
36
	private static final Logger logger = Logger.getLogger(BerlinModelAuthorExport.class);
37

    
38
	private static int modCount = 1000;
39
	private static final String dbTableName = "Author";
40
	private static final String pluralString = "Authors";
41
	private static final Class<? extends CdmBase> standardMethodParameter = Person.class;
42
	public BerlinModelAuthorExport(){
43
		super();
44
	}
45
	
46
	/* (non-Javadoc)
47
	 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator)
48
	 */
49
	@Override
50
	protected boolean doCheck(IExportConfigurator config){
51
		boolean result = true;
52
		logger.warn("Checking for "+pluralString+" not yet implemented");
53
		//result &= checkArticlesWithoutJournal(bmiConfig);
54
		//result &= checkPartOfJournal(bmiConfig);
55
		
56
		return result;
57
	}
58
	
59
	private BerlinModelExportMapping getMapping(){
60
		String tableName = dbTableName;
61
		BerlinModelExportMapping mapping = new BerlinModelExportMapping(tableName);
62
		mapping.addMapper(IdMapper.NewInstance("AuthorId"));
63
		mapping.addMapper(DbStringMapper.NewInstance("nomenclaturalTitle", "Abbrev"));
64
		mapping.addMapper(DbStringMapper.NewInstance("firstName", "FirstName"));
65
		mapping.addMapper(DbStringMapper.NewInstance("lastName", "LastName"));
66
		mapping.addMapper(DbStringMapper.NewInstance("lifespan", "Dates"));
67

    
68
//TODO		
69
//		mapping.addMapper(DbStringMapper.NewInstance("", "NomStandard"));
70
//		mapping.addMapper(DbStringMapper.NewInstance("", "K?rzel"));
71
//		mapping.addMapper(DbStringMapper.NewInstance("", "DraftK?rz"));
72
//		mapping.addMapper(DbStringMapper.NewInstance("", "Initials"));
73

    
74
		mapping.addMapper(CreatedAndNotesMapper.NewInstance());
75
		
76
		return mapping;
77
	}
78
	
79
	
80
	protected boolean doInvoke(BerlinModelExportState<BerlinModelExportConfigurator> state){
81
		//MapWrapper<AgentBase> teamMap = (MapWrapper<AgentBase>)stores.get(ICdmIO.AUTHOR_STORE);
82
		//MapWrapper<AgentBase> teamMap = (MapWrapper<AgentBase>)stores.get(ICdmIO.AUTHOR_STORE);
83
		
84
		try{
85
			BerlinModelExportConfigurator bmeConfig = (BerlinModelExportConfigurator)state.getConfig();
86
			
87
			logger.info("start make "+pluralString+" ...");
88
			boolean success = true ;
89
			doDelete(bmeConfig);
90
			
91
			TransactionStatus txStatus = startTransaction(true);
92
			Class<Team> clazz = Team.class;
93
			List<? extends AgentBase> persons = getAgentService().list(clazz, 100000000, 0);
94
			
95
			BerlinModelExportMapping mapping = getMapping();
96
			mapping.initialize(state);
97
			
98
			logger.info("save "+pluralString+" ...");
99
			int count = 0;
100
			for (AgentBase<?> agent : persons){
101
				doCount(count++, modCount, pluralString);
102
				if (agent instanceof Person){
103
					success &= mapping.invoke(agent);
104
				}
105
			}
106
			
107
			commitTransaction(txStatus);
108
			logger.info("end make "+pluralString+"  ...");
109
			return success;
110
		}catch(SQLException e){
111
			e.printStackTrace();
112
			logger.error(e.getMessage());
113
			return false;
114
		}
115
	}
116
	
117
	protected boolean doDelete(BerlinModelExportConfigurator config){
118
		String sql;
119
		Source destination =  config.getDestination();
120
		return true;
121
	}
122
	
123
	/* (non-Javadoc)
124
	 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator)
125
	 */
126
	protected boolean isIgnore(IExportConfigurator config){
127
		return ! ((BerlinModelExportConfigurator)config).isDoAuthors();
128
	}
129

    
130
	/* (non-Javadoc)
131
	 * @see eu.etaxonomy.cdm.io.berlinModel.out.BerlinModelExportBase#getStandardMethodParameter()
132
	 */
133
	@Override
134
	public Class<? extends CdmBase> getStandardMethodParameter() {
135
		return standardMethodParameter;
136
	}
137

    
138
}
(1-1/15)