2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.cdm
.io
.faunaEuropaea
;
11 import java
.sql
.ResultSet
;
12 import java
.sql
.SQLException
;
15 import org
.apache
.log4j
.Logger
;
16 import org
.springframework
.stereotype
.Component
;
18 import eu
.etaxonomy
.cdm
.io
.common
.ICdmIO
;
19 import eu
.etaxonomy
.cdm
.io
.common
.IImportConfigurator
;
20 import eu
.etaxonomy
.cdm
.io
.common
.ImportHelper
;
21 import eu
.etaxonomy
.cdm
.io
.common
.MapWrapper
;
22 import eu
.etaxonomy
.cdm
.io
.common
.Source
;
23 import eu
.etaxonomy
.cdm
.model
.agent
.AgentBase
;
24 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
25 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
26 import eu
.etaxonomy
.cdm
.model
.agent
.TeamOrPersonBase
;
27 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
28 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceBase
;
32 * @author a.babadshanjan
37 public class FaunaEuropaeaAuthorImport
extends FaunaEuropaeaImportBase
{
38 private static final Logger logger
= Logger
.getLogger(FaunaEuropaeaAuthorImport
.class);
40 private static int modCount
= 1000;
42 public FaunaEuropaeaAuthorImport(){
46 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator)
49 protected boolean doCheck(FaunaEuropeaImportState state
){
50 boolean result
= true;
51 logger
.warn("No checking for Authors not implemented");
57 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doInvoke(eu.etaxonomy.cdm.io.common.IImportConfigurator, eu.etaxonomy.cdm.api.application.CdmApplicationController, java.util.Map)
60 protected boolean doInvoke(FaunaEuropeaImportState state
){
61 Map
<String
, MapWrapper
<?
extends CdmBase
>> stores
= state
.getStores();
62 MapWrapper
<TeamOrPersonBase
> authorStore
= (MapWrapper
<TeamOrPersonBase
>)stores
.get(ICdmIO
.TEAM_STORE
);
64 FaunaEuropaeaImportConfigurator fauEuConfig
= state
.getConfig();
65 Source source
= fauEuConfig
.getSource();
67 String namespace
= "AuthorTeam";
68 boolean success
= true;
70 if(logger
.isInfoEnabled()) { logger
.info("Start making Authors..."); }
77 ResultSet rs
= source
.getResultSet(strQuery
) ;
82 if ((i
++ % modCount
) == 0 && i
!= 1 ) {
83 if(logger
.isInfoEnabled()) {
84 logger
.info("Authors handled: " + (i
-1));
88 int authorId
= rs
.getInt("aut_id");
89 String authorName
= rs
.getString("aut_name");
91 TeamOrPersonBase
<Team
> author
= null;
94 author
= Team
.NewInstance();
95 author
.setTitleCache(authorName
);
97 ImportHelper
.setOriginalSource(author
, fauEuConfig
.getSourceReference(), authorId
, namespace
);
99 if (!authorStore
.containsId(authorId
)) {
100 if (author
== null) {
101 logger
.warn("Author is null");
103 authorStore
.put(authorId
, author
);
104 if (logger
.isDebugEnabled()) {
105 logger
.debug("Stored author (" + authorId
+ ") " + authorName
);
108 logger
.warn("Not imported author with duplicated aut_id (" + authorId
+
111 } catch (Exception e
) {
112 logger
.warn("An exception occurred when creating author with id " + authorId
+
113 ". Author could not be saved.");
117 if(logger
.isInfoEnabled()) { logger
.info("Saving authors ..."); }
120 getAgentService().saveAgentAll(authorStore
.objects());
122 if(logger
.isInfoEnabled()) { logger
.info("End making authors ..."); }
126 } catch (SQLException e
) {
127 logger
.error("SQLException:" + e
);
133 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator)
135 protected boolean isIgnore(FaunaEuropeaImportState state
){
136 return ! state
.getConfig().isDoAuthors();