2 * Copyright (C) 2009 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
.reference
.endnote
.in
;
12 import java
.io
.InputStream
;
13 import java
.lang
.reflect
.Method
;
14 import java
.net
.MalformedURLException
;
17 import org
.apache
.log4j
.Logger
;
18 import org
.jdom
.Element
;
19 import org
.jdom
.Namespace
;
20 import org
.springframework
.stereotype
.Component
;
22 import eu
.etaxonomy
.cdm
.common
.XmlHelp
;
23 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
24 import eu
.etaxonomy
.cdm
.io
.common
.IImportConfigurator
;
25 import eu
.etaxonomy
.cdm
.io
.common
.ImportConfiguratorBase
;
26 import eu
.etaxonomy
.cdm
.model
.reference
.IDatabase
;
27 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceBase
;
28 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceFactory
;
31 public class EndnoteImportConfigurator
extends ImportConfiguratorBase
<EndnoteImportState
> implements IImportConfigurator
{
32 private static final Logger logger
= Logger
.getLogger(EndnoteImportConfigurator
.class);
34 public static EndnoteImportConfigurator
NewInstance(String url
,
35 ICdmDataSource destination
){
36 return new EndnoteImportConfigurator(url
, destination
);
39 private boolean doRecords
= true;
40 // private boolean doSpecimen = true;
42 private Method functionRecordsDetailed
= null;
43 private IEndnotePlaceholderClass placeholderClass
;
46 Namespace EndnoteNamespace
;
48 protected void makeIoClassList(){
49 ioClassList
= new Class
[]{
50 EndnoteRecordsImport
.class
55 * @param berlinModelSource
56 * @param sourceReference
59 private EndnoteImportConfigurator() {
62 // setDestination(destination);
66 * @param berlinModelSource
67 * @param sourceReference
70 private EndnoteImportConfigurator(String url
, ICdmDataSource destination
) {
73 setDestination(destination
);
79 * @see eu.etaxonomy.cdm.io.common.IImportConfigurator#getNewState()
81 public EndnoteImportState
getNewState() {
82 return new EndnoteImportState(this);
86 * @see eu.etaxonomy.cdm.io.common.ImportConfiguratorBase#getSource()
88 public String
getSource() {
89 return (String
)super.getSource();
95 public void setSource(String file
) {
96 super.setSource(file
);
102 public Element
getSourceRoot(){
103 String source
= getSource();
106 url
= new URL(source
);
107 Object o
= url
.getContent();
108 InputStream is
= (InputStream
)o
;
109 Element root
= XmlHelp
.getRoot(is
);
110 makeNamespaces(root
);
112 } catch (MalformedURLException e
) {
114 }catch (Exception e
) {
115 // TODO Auto-generated catch block
121 private boolean makeNamespaces(Element root
){
122 EndnoteNamespace
= root
.getNamespace();
123 if (EndnoteNamespace
== null){
124 logger
.warn("At least one Namespace is NULL");
130 * @see eu.etaxonomy.cdm.io.common.ImportConfiguratorBase#getSourceReference()
133 public ReferenceBase
getSourceReference() {
135 if (this.sourceReference
== null){
136 logger
.warn("getSource Reference not yet fully implemented");
137 ReferenceFactory refFactory
= ReferenceFactory
.newInstance();
138 sourceReference
= refFactory
.newDatabase();
139 sourceReference
.setTitleCache("XXX");
141 return sourceReference
;
145 * @see eu.etaxonomy.cdm.io.common.IImportConfigurator#getSourceNameString()
147 public String
getSourceNameString() {
148 if (this.getSource() == null){
151 return this.getSource();
155 public Namespace
getEndnoteNamespace() {
156 return EndnoteNamespace
;
159 public void setEndnoteNamespace(Namespace EndnoteNamespace
) {
160 this.EndnoteNamespace
= EndnoteNamespace
;
165 * @return the funMetaDataDetailed
167 public Method
getFunctionRecordsDetailed() {
168 if (functionRecordsDetailed
== null){
169 functionRecordsDetailed
= getDefaultFunction(EndnoteRecordsImport
.class, "defaultRecordsDetailedFunction");
171 return functionRecordsDetailed
;
176 * @param funMetaDataDetailed the funMetaDataDetailed to set
178 public void setFunctionRecordsDetailed(Method functionRecordsDetailed
) {
179 this.functionRecordsDetailed
= functionRecordsDetailed
;
183 * @return the doMetaData
185 public boolean isDoRecords() {
190 * @param doMetaData the doMetaData to set
192 public void setDoRecords(boolean doRecords
) {
193 this.doRecords
= doRecords
;
197 * @return the doSpecimen
199 // public boolean isDoSpecimen() {
200 // return doSpecimen;
204 * @param doSpecimen the doSpecimen to set
206 // public void setDoSpecimen(boolean doSpecimen) {
207 // this.doSpecimen = doSpecimen;
211 * @return the placeholderClass
213 public IEndnotePlaceholderClass
getPlaceholderClass() {
214 if (placeholderClass
== null){
215 placeholderClass
= new IEndnotePlaceholderClass();
217 return placeholderClass
;
221 * @param placeholderClass the placeholderClass to set
223 public void setPlaceholderClass(IEndnotePlaceholderClass placeholderClass
) {
224 this.placeholderClass
= placeholderClass
;