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.
10 package eu
.etaxonomy
.cdm
.io
.berlinModel
.in
;
13 import java
.net
.MalformedURLException
;
15 import java
.util
.HashSet
;
18 import org
.apache
.log4j
.Logger
;
20 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
21 import eu
.etaxonomy
.cdm
.io
.berlinModel
.out
.BerlinModelExportConfigurator
;
22 import eu
.etaxonomy
.cdm
.io
.berlinModel
.out
.BerlinModelExportState
;
23 import eu
.etaxonomy
.cdm
.io
.common
.IImportConfigurator
;
24 import eu
.etaxonomy
.cdm
.io
.common
.ImportConfiguratorBase
;
25 import eu
.etaxonomy
.cdm
.io
.common
.Source
;
26 import eu
.etaxonomy
.cdm
.model
.name
.NomenclaturalCode
;
27 import eu
.etaxonomy
.cdm
.model
.reference
.Database
;
28 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceBase
;
29 import eu
.etaxonomy
.cdm
.model
.taxon
.Synonym
;
36 public class BerlinModelImportConfigurator
extends ImportConfiguratorBase
implements IImportConfigurator
{
37 private static Logger logger
= Logger
.getLogger(BerlinModelImportConfigurator
.class);
39 public static BerlinModelImportConfigurator
NewInstance(Source berlinModelSource
, ICdmDataSource destination
){
40 return new BerlinModelImportConfigurator(berlinModelSource
, destination
);
43 private BerlinModelImportState
<BerlinModelImportConfigurator
> state
;
46 private Set
<Synonym
> proParteSynonyms
= new HashSet
<Synonym
>();
47 private Set
<Synonym
> partialSynonyms
= new HashSet
<Synonym
>();
51 private File mediaPath
;
52 private int maximumNumberOfNameFacts
;
53 private boolean isIgnore0AuthorTeam
= false;
55 protected void makeIoClassList(){
56 ioClassList
= new Class
[]{
57 BerlinModelAuthorImport
.class,
58 BerlinModelAuthorTeamImport
.class
59 , BerlinModelReferenceImport
.class
60 , BerlinModelTaxonNameImport
.class
61 , BerlinModelTaxonNameRelationImport
.class
62 , BerlinModelNameStatusImport
.class
63 , BerlinModelNameFactsImport
.class
64 , BerlinModelTypesImport
.class
65 , BerlinModelTaxonImport
.class
66 , BerlinModelTaxonRelationImport
.class
67 , BerlinModelFactsImport
.class
68 , BerlinModelOccurrenceImport
.class
74 * @param berlinModelSource
75 * @param sourceReference
78 private BerlinModelImportConfigurator(Source berlinModelSource
, ICdmDataSource destination
) {
80 setNomenclaturalCode(NomenclaturalCode
.ICBN
); //default for Berlin Model
81 setSource(berlinModelSource
);
82 setDestination(destination
);
86 public Source
getSource() {
87 return (Source
)super.getSource();
89 public void setSource(Source berlinModelSource
) {
90 super.setSource(berlinModelSource
);
94 * @see eu.etaxonomy.cdm.io.tcsrdf.IImportConfigurator#getSourceReference()
96 public ReferenceBase
getSourceReference() {
97 if (sourceReference
== null){
98 sourceReference
= Database
.NewInstance();
99 if (getSource() != null){
100 sourceReference
.setTitleCache(getSource().getDatabase());
103 return sourceReference
;
108 * @see eu.etaxonomy.cdm.io.common.IImportConfigurator#getSourceNameString()
110 public String
getSourceNameString() {
111 if (this.getSource() == null){
114 return this.getSource().getDatabase();
118 protected void addProParteSynonym(Synonym proParteSynonym
){
119 this.proParteSynonyms
.add(proParteSynonym
);
122 protected boolean isProParteSynonym(Synonym synonym
){
123 return this.proParteSynonyms
.contains(synonym
);
126 protected void addPartialSynonym(Synonym partialSynonym
){
127 this.partialSynonyms
.add(partialSynonym
);
130 protected boolean isPartialSynonym(Synonym synonym
){
131 return this.partialSynonyms
.contains(synonym
);
135 * @return the mediaUrl
137 public URL
getMediaUrl() {
142 * @param mediaUrl the mediaUrl to set
144 public void setMediaUrl(URL mediaUrl
) {
145 this.mediaUrl
= mediaUrl
;
149 * @return the mediaPath
151 public File
getMediaPath() {
156 * @param mediaPath the mediaPath to set
158 public void setMediaPath(File mediaPath
) {
159 this.mediaPath
= mediaPath
;
162 public void setMediaPath(String mediaPathString
){
163 this.mediaPath
= new File(mediaPathString
);
166 public void setMediaUrl(String mediaUrlString
) {
168 this.mediaUrl
= new URL(mediaUrlString
);
169 } catch (MalformedURLException e
) {
170 logger
.error("Could not set mediaUrl because it was malformed: " + mediaUrlString
);
175 * @return the maximumNumberOfNameFacts
177 public int getMaximumNumberOfNameFacts() {
178 return maximumNumberOfNameFacts
;
182 * set to 0 for unlimited
184 * @param maximumNumberOfNameFacts the maximumNumberOfNameFacts to set
186 public void setMaximumNumberOfNameFacts(int maximumNumberOfNameFacts
) {
187 this.maximumNumberOfNameFacts
= maximumNumberOfNameFacts
;
191 * If true, an authorTeam with authorTeamId = 0 is not imported (casus Salvador)
192 * @return the isIgnore0AuthorTeam
194 public boolean isIgnore0AuthorTeam() {
195 return isIgnore0AuthorTeam
;
199 * @param isIgnore0AuthorTeam the isIgnore0AuthorTeam to set
201 public void setIgnore0AuthorTeam(boolean isIgnore0AuthorTeam
) {
202 this.isIgnore0AuthorTeam
= isIgnore0AuthorTeam
;
208 protected BerlinModelImportState
<BerlinModelImportConfigurator
> getState() {
213 * @param state the state to set
215 protected void setState(
216 BerlinModelImportState
<BerlinModelImportConfigurator
> state
) {