(no commit message)
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / common / CdmIoBase.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.common;
11
12 import java.util.Map;
13
14 import org.apache.log4j.Logger;
15
16 import eu.etaxonomy.cdm.api.application.CdmApplicationController;
17 import eu.etaxonomy.cdm.model.common.CdmBase;
18
19 /**
20 * @author a.mueller
21 * @created 01.07.2008
22 * @version 1.0
23 */
24 public abstract class CdmIoBase implements ICdmIO {
25 private static Logger logger = Logger.getLogger(CdmIoBase.class);
26
27 protected String ioName = null;
28 protected boolean ignore = false;
29
30
31 /**
32 *
33 */
34 public CdmIoBase(String name, boolean ignore) {
35 this.ioName = name;
36 this.ignore = ignore;
37 }
38
39 /* (non-Javadoc)
40 * @see eu.etaxonomy.cdm.io.common.ICdmIO#check(eu.etaxonomy.cdm.io.common.IImportConfigurator)
41 */
42 public boolean check(IImportConfigurator config) {
43 if (ignore){
44 logger.warn("No check for " + ioName + " (ignored)");
45 return true;
46 }else{
47 return doCheck(config);
48 }
49 }
50
51 protected abstract boolean doCheck(IImportConfigurator config);
52
53
54 /* (non-Javadoc)
55 * @see eu.etaxonomy.cdm.io.common.ICdmIO#invoke(eu.etaxonomy.cdm.io.common.IImportConfigurator, eu.etaxonomy.cdm.api.application.CdmApplicationController, java.util.Map)
56 */
57 public boolean invoke(IImportConfigurator config,
58 CdmApplicationController app, Map stores) {
59 if (ignore){
60 logger.warn("No invoke for " + ioName + " (ignored)");
61 return true;
62 }else{
63 return doInvoke(config, app, stores);
64 }
65 }
66
67 protected abstract boolean doInvoke(IImportConfigurator config,
68 CdmApplicationController app, Map<String, MapWrapper<? extends CdmBase>> stores);
69
70 }