2 * Copyright (C) 2008 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
7 package eu
.etaxonomy
.cdm
.io
.common
;
9 import org
.apache
.log4j
.Logger
;
11 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationController
;
12 import eu
.etaxonomy
.cdm
.api
.application
.ICdmApplicationConfiguration
;
13 import eu
.etaxonomy
.cdm
.database
.DbSchemaValidation
;
14 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
17 * This is an exporter that invokes the application aware defaultExport when
20 * @author a.babadshanjan
23 public class CdmDefaultIOBase
<T
extends IIoConfigurator
> {
24 @SuppressWarnings("unused")
25 private static final Logger logger
= Logger
26 .getLogger(CdmDefaultIOBase
.class);
28 protected ICdmApplicationConfiguration cdmApp
= null;
31 * Creates a new {@link CdmApplicationController} if it does not exist yet
32 * or if createNew is <ocde>true</code>
36 * @param omitTermLoading
40 protected boolean startApplicationController(IIoConfigurator config
,
41 ICdmDataSource cdmSource
, boolean omitTermLoading
, boolean createNew
) {
42 if (config
.getCdmAppController() != null) {
43 this.cdmApp
= config
.getCdmAppController();
45 DbSchemaValidation schemaValidation
= config
.getDbSchemaValidation();
46 if (this instanceof CdmDefaultExport
) {
47 if (schemaValidation
.equals(DbSchemaValidation
.CREATE
)
48 || schemaValidation
.equals(DbSchemaValidation
.CREATE_DROP
)) {
49 throw new IllegalArgumentException(
50 "The export may not run with DbSchemaValidation.CREATE or DbSchemaValidation.CREATE_DROP as this value deletes the source database");
54 if (createNew
== true || cdmApp
== null) {
55 cdmApp
= CdmApplicationController
.NewInstance(cdmSource
,
56 schemaValidation
, omitTermLoading
);
68 * Returns the {@link CdmApplicationController}. This is null if invoke()
69 * has not been called yet and if the controller has not been set manually
74 public ICdmApplicationConfiguration
getCdmAppController() {
82 public void setCdmAppController(ICdmApplicationConfiguration cdmApp
) {