1 package eu
.etaxonomy
.cdm
.io
.berlinModel
;
3 import org
.apache
.log4j
.Logger
;
4 import org
.springframework
.stereotype
.Service
;
6 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationController
;
7 import eu
.etaxonomy
.cdm
.io
.source
.Source
;
8 import eu
.etaxonomy
.cdm
.model
.agent
.Agent
;
9 import eu
.etaxonomy
.cdm
.model
.name
.TaxonNameBase
;
10 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceBase
;
11 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
14 public class BerlinModelImport
{
15 private static final Logger logger
= Logger
.getLogger(BerlinModelImport
.class);
17 private boolean deleteAll
= false;
19 private boolean makeAuthors
= false;
22 private boolean makeReferences
= true;
25 private boolean makeTaxonNames
= true;
26 private boolean makeRelNames
= true;
27 private boolean makeNameStatus
= false;
30 private boolean makeTaxa
= true;
31 private boolean makeRelTaxa
= true;
32 private boolean makeFacts
= false;
36 private Source source
;
39 private CdmApplicationController cdmApp
;
42 //final boolean OBLIGATORY = true;
43 //final boolean FACULTATIVE = false;
44 final int modCount
= 1000;
48 //OLD: private Map<Integer, UUID> referenceMap = new HashMap<Integer, UUID>();
49 private MapWrapper
<Agent
> authorStore
= new MapWrapper
<Agent
>(null);
50 private MapWrapper
<ReferenceBase
> referenceStore
= new MapWrapper
<ReferenceBase
>(null);
51 private MapWrapper
<TaxonNameBase
> taxonNameStore
= new MapWrapper
<TaxonNameBase
>(null);
52 private MapWrapper
<TaxonBase
> taxonStore
= new MapWrapper
<TaxonBase
>(null);
58 public boolean doImport(ReferenceBase berlinModelRef
, Source source
, CdmApplicationController cdmApp
){
59 System
.out
.println("Start import from BerlinModel ("+ source
.getDatabase() + ") to Cdm (" + cdmApp
.getDatabaseService().getUrl() + ") ...");
60 if (source
== null || cdmApp
== null){
61 throw new NullPointerException("Source and CdmApplicationController must not be null");
68 if (! BerlinModelAuthorIO
.invoke(berlinModelRef
,source
, cdmApp
, deleteAll
, authorStore
)){
69 logger
.warn("No Authors imported");
78 if (! BerlinModelReferenceIO
.invoke(berlinModelRef
,source
, cdmApp
, deleteAll
, referenceStore
, authorStore
)){
82 logger
.warn("No References imported");
83 referenceStore
= null;
88 if (! BerlinModelTaxonNameIO
.invoke(berlinModelRef
,source
, cdmApp
, deleteAll
, taxonNameStore
, referenceStore
, authorStore
)){
92 logger
.warn("No TaxonNames imported");
93 taxonNameStore
= null;
97 //make and save RelNames
99 if (! BerlinModelTaxonNameIO
.invokeRelations(berlinModelRef
,source
, cdmApp
, deleteAll
, taxonNameStore
, referenceStore
)){
103 logger
.warn("No RelPTaxa imported");
111 if (! BerlinModelTaxonIO
.invoke(berlinModelRef
, source
, cdmApp
, deleteAll
, taxonStore
, taxonNameStore
, referenceStore
)){
115 logger
.warn("No Taxa imported");
116 taxonNameStore
= null;
119 //make and save RelPTaxa
121 if (! BerlinModelTaxonIO
.invokeRelations(berlinModelRef
, source
, cdmApp
, deleteAll
, taxonStore
, referenceStore
)){
125 logger
.warn("No RelPTaxa imported");
128 //make and save Facts
130 if (! BerlinModelFactsIO
.invoke(berlinModelRef
, source
, cdmApp
, deleteAll
, taxonStore
, referenceStore
)){
134 logger
.warn("No Facts imported");
138 System
.out
.println("End import from BerlinModel ("+ source
.getDatabase() + ") to Cdm (" + cdmApp
.getDatabaseService().getUrl() + ") ...");