Revision f12ac52e
Added by Katja Luther about 7 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SpecimenImportView.java | ||
---|---|---|
15 | 15 |
import java.util.Collection; |
16 | 16 |
|
17 | 17 |
import org.apache.http.client.ClientProtocolException; |
18 |
import org.eclipse.core.runtime.jobs.Job; |
|
18 |
import org.w3c.dom.Element; |
|
19 |
import org.w3c.dom.NodeList; |
|
19 | 20 |
|
20 | 21 |
import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper; |
21 |
import eu.etaxonomy.cdm.io.common.CdmDefaultImport; |
|
22 |
import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE; |
|
22 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206DataHolder; |
|
23 | 23 |
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator; |
24 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
|
25 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
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; |
|
26 | 29 |
|
27 | 30 |
/** |
28 | 31 |
* @author pplitzner |
29 | 32 |
* @date Sep 3, 2014 |
30 | 33 |
* |
31 | 34 |
*/ |
32 |
public class SpecimenImportView extends DataImportView<SpecimenOrObservationBase<?>> {
|
|
35 |
public class SpecimenImportView extends DataImportView<Abcd206DataHolder> {
|
|
33 | 36 |
|
34 | 37 |
public static final String ID = "eu.etaxonomy.taxeditor.view.dataimport.SpecimenImportView"; //$NON-NLS-1$ |
35 | 38 |
|
... | ... | |
49 | 52 |
* @see eu.etaxonomy.taxeditor.view.dataimport.DataImportView#getTextForTableItem(java.lang.Object) |
50 | 53 |
*/ |
51 | 54 |
@Override |
52 |
protected String getTextForTableItem(SpecimenOrObservationBase<?> item) { |
|
53 |
return item.getTitleCache(); |
|
55 |
protected String getTextForTableItem(Abcd206DataHolder item) { |
|
56 |
//TODO: define a suitable toString method |
|
57 |
return item.toString(); |
|
54 | 58 |
} |
55 | 59 |
|
56 | 60 |
/* (non-Javadoc) |
... | ... | |
60 | 64 |
public void query() { |
61 | 65 |
String errorMessage = "Could not execute query " + query; |
62 | 66 |
|
63 |
Collection<SpecimenOrObservationBase<?>> results = new ArrayList<SpecimenOrObservationBase<?>>();
|
|
67 |
Collection<Abcd206DataHolder> results = new ArrayList<Abcd206DataHolder>();
|
|
64 | 68 |
try { |
65 | 69 |
//FIXME move ABCD import to cdmlib -> this will also get rid of the transient services |
66 | 70 |
InputStream resultStream; |
67 | 71 |
resultStream = new BioCaseQueryServiceWrapper().query(query, endPoint); |
68 | 72 |
Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(null, null); |
69 |
// TransientCdmRepository repo = |
|
73 |
configurator.setSourceUri(endPoint); |
|
74 |
|
|
75 |
// TransientCdmRepository repo = |
|
70 | 76 |
// new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration()); |
71 | 77 |
//configurator.setCdmAppController(repo); |
78 |
|
|
79 |
//TODO: do not query all data but with the selected triple IDs -> see GbifResponseImportView |
|
72 | 80 |
configurator.setAddMediaAsMediaSpecimen(true); |
73 | 81 |
configurator.setAllowReuseOtherClassifications(true); |
74 |
|
|
75 |
Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM); |
|
76 |
CdmStore.getImportManager().run(job); |
|
77 |
|
|
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); |
|
94 |
} |
|
95 |
|
|
96 |
// Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM); |
|
97 |
// CdmStore.getImportManager().run(job); |
|
98 |
|
|
78 | 99 |
setResults(results); |
79 | 100 |
} catch (ClientProtocolException e) { |
80 | 101 |
logger.error(errorMessage, e); |
... | ... | |
82 | 103 |
logger.error(errorMessage, e); |
83 | 104 |
} |
84 | 105 |
|
85 |
setResults(results); |
|
106 |
// setResults(results);
|
|
86 | 107 |
|
87 | 108 |
} |
88 | 109 |
|
Also available in: Unified diff
some changes for specimen import