Refactoring for Imports
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / berlinModel / out / BerlinModelExportBase.java
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.berlinModel.out;
11
12 import java.sql.ResultSet;
13 import java.sql.SQLException;
14 import java.util.List;
15 import java.util.Map;
16
17 import org.apache.log4j.Logger;
18
19 import eu.etaxonomy.cdm.io.common.CdmIoBase;
20 import eu.etaxonomy.cdm.io.common.ICdmIO;
21 import eu.etaxonomy.cdm.io.common.IExportConfigurator;
22 import eu.etaxonomy.cdm.io.common.MapWrapper;
23 import eu.etaxonomy.cdm.io.common.Source;
24 import eu.etaxonomy.cdm.model.common.CdmBase;
25 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
26
27 /**
28 * @author a.mueller
29 * @created 20.03.2008
30 * @version 1.0
31 */
32 public abstract class BerlinModelExportBase<T extends CdmBase> extends CdmIoBase<IExportConfigurator> implements ICdmIO<IExportConfigurator> {
33 private static final Logger logger = Logger.getLogger(BerlinModelExportBase.class);
34
35 public BerlinModelExportBase() {
36 super();
37 }
38
39 protected abstract boolean doInvoke(BerlinModelExportState<BerlinModelExportConfigurator> state);
40
41 /* (non-Javadoc)
42 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doInvoke(eu.etaxonomy.cdm.io.common.IImportConfigurator, eu.etaxonomy.cdm.api.application.CdmApplicationController, java.util.Map)
43 */
44 @Override
45 protected boolean doInvoke(IExportConfigurator config,
46 Map<String, MapWrapper<? extends CdmBase>> stores){
47 BerlinModelExportState<BerlinModelExportConfigurator> state = ((BerlinModelExportConfigurator)config).getState();
48 state.setConfig((BerlinModelExportConfigurator)config);
49 return doInvoke(state);
50 }
51
52 protected boolean checkSqlServerColumnExists(Source source, String tableName, String columnName){
53 String strQuery = "SELECT Count(t.id) as n " +
54 " FROM sysobjects AS t " +
55 " INNER JOIN syscolumns AS c ON t.id = c.id " +
56 " WHERE (t.xtype = 'U') AND " +
57 " (t.name = '" + tableName + "') AND " +
58 " (c.name = '" + columnName + "')";
59 ResultSet rs = source.getResultSet(strQuery) ;
60 int n;
61 try {
62 rs.next();
63 n = rs.getInt("n");
64 return n>0;
65 } catch (SQLException e) {
66 e.printStackTrace();
67 return false;
68 }
69
70 }
71
72 public abstract Class<? extends CdmBase> getStandardMethodParameter();
73
74 protected void doCount(int count, int modCount, String pluralString){
75 if ((count % modCount ) == 0 && count!= 0 ){ logger.info(pluralString + " handled: " + (count));}
76 }
77
78 }