Project

General

Profile

Download (3.11 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2014 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.taxeditor.editor.view.dataimport;
11

    
12
import java.io.IOException;
13
import java.io.InputStream;
14
import java.net.URI;
15
import java.util.ArrayList;
16
import java.util.Collection;
17

    
18
import org.apache.http.client.ClientProtocolException;
19
import org.eclipse.core.runtime.jobs.Job;
20

    
21
import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
22
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
23
import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
24
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
25
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
26
import eu.etaxonomy.taxeditor.editor.view.dataimport.transientServices.TransientCdmRepository;
27
import eu.etaxonomy.taxeditor.store.CdmStore;
28

    
29
/**
30
 * @author pplitzner
31
 * @date Sep 3, 2014
32
 *
33
 */
34
public class SpecimenImportView extends DataImportView<SpecimenOrObservationBase<?>> {
35

    
36
    public static final String ID = "eu.etaxonomy.taxeditor.editor.view.dataimport.SpecimenImportView"; //$NON-NLS-1$
37

    
38
    private URI endPoint;
39

    
40
    public SpecimenImportView() {
41
    }
42

    
43
    public void setEndpoint(URI endPoint) {
44
        this.endPoint = endPoint;
45
    }
46

    
47
    @Override
48
    protected String getTextForTableItem(SpecimenOrObservationBase<?> item) {
49
        return item.getTitleCache();
50
    }
51

    
52
    @Override
53
    public void query() {
54
        String errorMessage = "Could not execute query " + query;
55

    
56
        Collection<SpecimenOrObservationBase<?>> results = new ArrayList<SpecimenOrObservationBase<?>>();
57
        try {
58
            //FIXME move ABCD import to cdmlib -> this will also get rid of the transient services
59
            InputStream resultStream;
60
            resultStream = new BioCaseQueryServiceWrapper().query(query, endPoint);
61
            Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(null, null);
62
            TransientCdmRepository repo =
63
                    new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
64
            configurator.setCdmAppController(repo);
65
            configurator.setAddMediaAsMediaSpecimen(true);
66
            if(CdmStore.getCurrentSessionManager().isRemoting()) {
67
                Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM);
68
                CdmStore.getImportManager().run(job);
69
            } else {
70
                configurator.setSource(resultStream);
71
                CdmDefaultImport<Abcd206ImportConfigurator> importer = new CdmDefaultImport<Abcd206ImportConfigurator>();
72
                importer.invoke(configurator);
73
            }
74
            results = repo.getUnits();
75
            setResults(results);
76
        } catch (ClientProtocolException e) {
77
            logger.error(errorMessage, e);
78
        } catch (IOException e) {
79
            logger.error(errorMessage, e);
80
        }
81

    
82
        setResults(results);
83

    
84
    }
85

    
86
}
(12-12/15)