index fungorum import of infraspecific taxa
[cdmlib-apps.git] / cdm-pesi / src / main / java / eu / etaxonomy / cdm / io / pesi / out / ExpertsAndLastActionMapper.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11 package eu.etaxonomy.cdm.io.pesi.out;
12
13 import java.sql.PreparedStatement;
14 import java.sql.SQLException;
15
16 import org.apache.log4j.Logger;
17
18 import eu.etaxonomy.cdm.io.common.DbExportStateBase;
19 import eu.etaxonomy.cdm.io.common.mapping.MultipleAttributeMapperBase;
20 import eu.etaxonomy.cdm.io.common.mapping.out.DbExportNotYetImplementedMapper;
21 import eu.etaxonomy.cdm.io.common.mapping.out.DbLastActionMapper;
22 import eu.etaxonomy.cdm.io.common.mapping.out.DbSingleAttributeExportMapperBase;
23 import eu.etaxonomy.cdm.io.common.mapping.out.IDbExportMapper;
24 import eu.etaxonomy.cdm.io.common.mapping.out.IExportTransformer;
25 import eu.etaxonomy.cdm.io.common.mapping.out.IndexCounter;
26 import eu.etaxonomy.cdm.model.common.CdmBase;
27
28 /**
29 * @author a.mueller
30 * @created 12.05.2009
31 * @version 1.0
32 */
33 public class ExpertsAndLastActionMapper extends MultipleAttributeMapperBase<DbSingleAttributeExportMapperBase<DbExportStateBase<?, IExportTransformer>>> implements IDbExportMapper<DbExportStateBase<?, IExportTransformer>, IExportTransformer>{
34 @SuppressWarnings("unused")
35 private static final Logger logger = Logger.getLogger(ExpertsAndLastActionMapper.class);
36
37 private static final boolean IS_ACTION_TYPE = true;
38
39 public static ExpertsAndLastActionMapper NewInstance(){
40 return new ExpertsAndLastActionMapper();
41 }
42
43
44 /**
45 * @param dbAttributString
46 * @param cdmAttributeString
47 */
48 private ExpertsAndLastActionMapper() {
49 singleMappers.add(DbLastActionMapper.NewInstance("LastActionDate", ! IS_ACTION_TYPE));
50 singleMappers.add(DbLastActionMapper.NewInstance("LastAction", IS_ACTION_TYPE));
51 singleMappers.add(DbExportNotYetImplementedMapper.NewInstance("SpeciesExpertName", "Need to better understand what the species expert name is"));
52 singleMappers.add(DbExportNotYetImplementedMapper.NewInstance("SpeciesExpertGUID", "SpeciesExpertGUID derives from an external mapeing list: name to GUID from expertsDB"));
53 }
54
55
56 /* (non-Javadoc)
57 * @see eu.etaxonomy.cdm.io.berlinModel.out.mapper.IDbExportMapper#initialize(java.sql.PreparedStatement, eu.etaxonomy.cdm.io.berlinModel.out.mapper.IndexCounter, eu.etaxonomy.cdm.io.berlinModel.out.DbExportState)
58 */
59 public void initialize(PreparedStatement stmt, IndexCounter index, DbExportStateBase<?, IExportTransformer> state, String tableName) {
60 for (DbSingleAttributeExportMapperBase<DbExportStateBase<?, IExportTransformer>> mapper : singleMappers){
61 mapper.initialize(stmt, index, state, tableName);
62 }
63 }
64
65
66 /* (non-Javadoc)
67 * @see eu.etaxonomy.cdm.io.berlinModel.out.mapper.IDbExportMapper#invoke(eu.etaxonomy.cdm.model.common.CdmBase)
68 */
69 public boolean invoke(CdmBase cdmBase) throws SQLException {
70 boolean result = true;
71 for (DbSingleAttributeExportMapperBase<DbExportStateBase<?, IExportTransformer>> mapper : singleMappers){
72 result &= mapper.invoke(cdmBase);
73 }
74 return result;
75 }
76
77
78 }