2 * Copyright (C) 2014 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
.taxeditor
.view
.dataimport
;
11 import java
.io
.IOException
;
12 import java
.io
.InputStream
;
14 import java
.util
.ArrayList
;
15 import java
.util
.Collection
;
17 import org
.apache
.http
.client
.ClientProtocolException
;
18 import org
.w3c
.dom
.Element
;
19 import org
.w3c
.dom
.NodeList
;
21 import eu
.etaxonomy
.cdm
.ext
.occurrence
.bioCase
.BioCaseQueryServiceWrapper
;
22 import eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
.Abcd206DataHolder
;
23 import eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
.Abcd206ImportConfigurator
;
24 import eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
.Abcd206ImportParser
;
25 import eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
.Abcd206ImportState
;
26 import eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
.Abcd206XMLFieldGetter
;
27 import eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
.AbcdParseUtility
;
28 import eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
.UnitAssociationWrapper
;
35 public class SpecimenImportView
extends DataImportView
<Abcd206DataHolder
> {
37 public static final String ID
= "eu.etaxonomy.taxeditor.view.dataimport.SpecimenImportView"; //$NON-NLS-1$
41 public SpecimenImportView() {
47 public void setEndpoint(URI endPoint
) {
48 this.endPoint
= endPoint
;
52 * @see eu.etaxonomy.taxeditor.view.dataimport.DataImportView#getTextForTableItem(java.lang.Object)
55 protected String
getTextForTableItem(Abcd206DataHolder item
) {
56 //TODO: define a suitable toString method
57 return item
.toString();
61 * @see eu.etaxonomy.taxeditor.view.dataimport.DataImportView#query()
65 String errorMessage
= "Could not execute query " + query
;
67 Collection
<Abcd206DataHolder
> results
= new ArrayList
<Abcd206DataHolder
>();
69 //FIXME move ABCD import to cdmlib -> this will also get rid of the transient services
70 InputStream resultStream
;
71 resultStream
= new BioCaseQueryServiceWrapper().query(query
, endPoint
);
72 Abcd206ImportConfigurator configurator
= Abcd206ImportConfigurator
.NewInstance(null, null);
73 configurator
.setSourceUri(endPoint
);
75 // TransientCdmRepository repo =
76 // new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
77 //configurator.setCdmAppController(repo);
79 //TODO: do not query all data but with the selected triple IDs -> see GbifResponseImportView
80 configurator
.setAddMediaAsMediaSpecimen(true);
81 configurator
.setAllowReuseOtherClassifications(true);
82 configurator
.setMoveNewTaxaToDefaultClassification(false);
83 UnitAssociationWrapper unitAssociationWrapper
= AbcdParseUtility
.parseUnitsNodeList(resultStream
, null);
84 NodeList unitsList
= unitAssociationWrapper
.getAssociatedUnits();
85 Abcd206DataHolder dataHolder
= new Abcd206DataHolder();
86 Abcd206XMLFieldGetter abcdFieldGetter
= new Abcd206XMLFieldGetter(dataHolder
, unitAssociationWrapper
.getPrefix());
87 Abcd206ImportState state
= new Abcd206ImportState(configurator
);
88 state
.setDataHolder(dataHolder
);
89 for (int i
= 0; i
<unitsList
.getLength(); i
++){
90 Element item
= (Element
) unitsList
.item(i
);
91 //dataHolder = new Abcd206DataHolder();
92 Abcd206ImportParser
.setUnitPropertiesXML(item
, abcdFieldGetter
, state
);
93 results
.add(dataHolder
);
96 // Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM);
97 // CdmStore.getImportManager().run(job);
100 } catch (ClientProtocolException e
) {
101 logger
.error(errorMessage
, e
);
102 } catch (IOException e
) {
103 logger
.error(errorMessage
, e
);
106 // setResults(results);