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
;
10 import org
.springframework
.core
.io
.ClassPathResource
;
12 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationController
;
13 import eu
.etaxonomy
.cdm
.api
.application
.ICdmApplicationConfiguration
;
14 import eu
.etaxonomy
.cdm
.database
.DbSchemaValidation
;
15 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
18 * This is an exporter that invokes the application aware defaultExport when
21 * @author a.babadshanjan
24 public class CdmDefaultIOBase
<T
extends IIoConfigurator
> {
25 @SuppressWarnings("unused")
26 private static final Logger logger
= Logger
.getLogger(CdmDefaultIOBase
.class);
28 public static final String DEFAULT_IO_APPLICATION_CONTEXT_RESOURCE
= "/eu/etaxonomy/cdm/defaultIoApplicationContext.xml";
31 protected ICdmApplicationConfiguration cdmApp
= null;
34 * Creates a new {@link CdmApplicationController} if it does not exist yet
35 * or if createNew is <ocde>true</code>
39 * @param omitTermLoading
43 protected boolean startApplicationController(IIoConfigurator config
,
44 ICdmDataSource cdmSource
, boolean omitTermLoading
, boolean createNew
) {
45 if (config
.getCdmAppController() != null) {
46 this.cdmApp
= config
.getCdmAppController();
48 DbSchemaValidation schemaValidation
= config
.getDbSchemaValidation();
49 if (this instanceof CdmDefaultExport
) {
50 if (schemaValidation
.equals(DbSchemaValidation
.CREATE
)
51 || schemaValidation
.equals(DbSchemaValidation
.CREATE_DROP
)) {
52 throw new IllegalArgumentException(
53 "The export may not run with DbSchemaValidation.CREATE or DbSchemaValidation.CREATE_DROP as this value deletes the source database");
57 if (createNew
== true || cdmApp
== null) {
58 ClassPathResource applicationContextResource
= new ClassPathResource(DEFAULT_IO_APPLICATION_CONTEXT_RESOURCE
);
59 cdmApp
= CdmApplicationController
.NewInstance(applicationContextResource
, cdmSource
,schemaValidation
, omitTermLoading
);
71 * Returns the {@link CdmApplicationController}. This is null if invoke()
72 * has not been called yet and if the controller has not been set manually
77 public ICdmApplicationConfiguration
getCdmAppController() {
85 public void setCdmAppController(ICdmApplicationConfiguration cdmApp
) {