Project

General

Profile

Download (6.94 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 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

    
11
package eu.etaxonomy.cdm.io.specimen.abcd206.in;
12

    
13
import java.io.ByteArrayOutputStream;
14
import java.io.PrintStream;
15
import java.util.ArrayList;
16
import java.util.List;
17

    
18
import org.apache.log4j.Logger;
19
import org.springframework.transaction.TransactionStatus;
20

    
21
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
22
import eu.etaxonomy.cdm.io.common.CdmImportBase;
23
import eu.etaxonomy.cdm.io.common.ImportStateBase;
24
import eu.etaxonomy.cdm.model.common.OriginalSourceBase;
25
import eu.etaxonomy.cdm.model.description.TaxonDescription;
26
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
27
import eu.etaxonomy.cdm.model.reference.Reference;
28
import eu.etaxonomy.cdm.model.taxon.Classification;
29

    
30
/**
31
 * @author a.mueller
32
 * @created 11.05.2009
33
 * @version 1.0
34
 */
35
public class Abcd206ImportState extends ImportStateBase<Abcd206ImportConfigurator, CdmImportBase<Abcd206ImportConfigurator,Abcd206ImportState>>{
36
	@SuppressWarnings("unused")
37
	private static final Logger logger = Logger.getLogger(Abcd206ImportState.class);
38

    
39
	private TransactionStatus tx;
40

    
41
	private ICdmApplicationConfiguration cdmRepository;
42

    
43
	private String prefix;
44

    
45
    private Abcd206ImportReport report;
46

    
47
	private Classification classification = null;
48
	private Classification defaultClassification = null;
49
	private Reference ref = null;
50

    
51
	private Abcd206DataHolder dataHolder;
52
	private DerivedUnit derivedUnitBase;
53

    
54
	private List<OriginalSourceBase<?>> associationRefs = new ArrayList<OriginalSourceBase<?>>();
55
	private boolean associationSourcesSet=false;
56
	private List<OriginalSourceBase<?>> descriptionRefs = new ArrayList<OriginalSourceBase<?>>();
57
	private boolean descriptionSourcesSet=false;
58
	private List<OriginalSourceBase<?>> derivedUnitSources = new ArrayList<OriginalSourceBase<?>>();
59
	private boolean derivedUnitSourcesSet=false;
60
	private boolean descriptionGroupSet = false;
61
	private TaxonDescription descriptionGroup = null;
62

    
63
//****************** CONSTRUCTOR ***************************************************/
64

    
65
	public Abcd206ImportState(Abcd206ImportConfigurator config) {
66
		super(config);
67
        report = new Abcd206ImportReport();
68
        setTransformer(new AbcdTransformer());
69
	}
70

    
71
//************************ GETTER / SETTER *****************************************/
72

    
73
	public TransactionStatus getTx() {
74
		return tx;
75
	}
76

    
77
	public void setTx(TransactionStatus tx) {
78
		this.tx = tx;
79
	}
80

    
81
	public ICdmApplicationConfiguration getCdmRepository() {
82
		return cdmRepository;
83
	}
84

    
85
	public void setCdmRepository(ICdmApplicationConfiguration cdmRepository) {
86
		this.cdmRepository = cdmRepository;
87
	}
88

    
89
    public Classification getClassification() {
90
        return classification;
91
    }
92

    
93
    public void setClassification(Classification classification) {
94
        this.classification = classification;
95
    }
96

    
97
    public Classification getDefaultClassification() {
98
        if(defaultClassification==null){
99
            final String defaultClassificationAbcd = "Default Classification ABCD";
100
            for (Classification classif : cdmRepository.getClassificationService().list(Classification.class, null, null, null, null)){
101
                if (classif.getTitleCache()!=null && classif.getTitleCache().equalsIgnoreCase(defaultClassificationAbcd)
102
                        && classif.getCitation()!=null && classif.getCitation().equals(getRef())) {
103
                    defaultClassification = classif;
104
                    break;
105
                }
106
            }
107
            if(defaultClassification==null){
108
                defaultClassification = Classification.NewInstance(defaultClassificationAbcd);
109
                cdmRepository.getClassificationService().save(defaultClassification);
110
            }
111
        }
112
        return defaultClassification;
113
    }
114

    
115
    public void setDefaultClassification(Classification defaultClassification) {
116
        this.defaultClassification = defaultClassification;
117
    }
118

    
119
    public Reference getRef() {
120
        return ref;
121
    }
122

    
123
    public void setRef(Reference ref) {
124
        this.ref = ref;
125
    }
126

    
127
    public Abcd206DataHolder getDataHolder() {
128
        return dataHolder;
129
    }
130

    
131
    public void setDataHolder(Abcd206DataHolder dataHolder) {
132
        this.dataHolder = dataHolder;
133
    }
134

    
135
    public DerivedUnit getDerivedUnitBase() {
136
        return derivedUnitBase;
137
    }
138

    
139
    public void setDerivedUnitBase(DerivedUnit derivedUnitBase) {
140
        this.derivedUnitBase = derivedUnitBase;
141
    }
142

    
143
    public List<OriginalSourceBase<?>> getAssociationRefs() {
144
        return associationRefs;
145
    }
146

    
147
    public void setAssociationRefs(List<OriginalSourceBase<?>> associationRefs) {
148
        this.associationRefs = associationRefs;
149
    }
150

    
151
    public boolean isAssociationSourcesSet() {
152
        return associationSourcesSet;
153
    }
154

    
155
    public void setAssociationSourcesSet(boolean associationSourcesSet) {
156
        this.associationSourcesSet = associationSourcesSet;
157
    }
158

    
159
    public List<OriginalSourceBase<?>> getDescriptionRefs() {
160
        return descriptionRefs;
161
    }
162

    
163
    public void setDescriptionRefs(List<OriginalSourceBase<?>> descriptionRefs) {
164
        this.descriptionRefs = descriptionRefs;
165
    }
166

    
167
    public boolean isDescriptionSourcesSet() {
168
        return descriptionSourcesSet;
169
    }
170

    
171
    public void setDescriptionSourcesSet(boolean descriptionSourcesSet) {
172
        this.descriptionSourcesSet = descriptionSourcesSet;
173
    }
174

    
175
    public List<OriginalSourceBase<?>> getDerivedUnitSources() {
176
        return derivedUnitSources;
177
    }
178

    
179
    public void setDerivedUnitSources(List<OriginalSourceBase<?>> derivedUnitSources) {
180
        this.derivedUnitSources = derivedUnitSources;
181
    }
182

    
183
    public boolean isDerivedUnitSourcesSet() {
184
        return derivedUnitSourcesSet;
185
    }
186

    
187
    public void setDerivedUnitSourcesSet(boolean derivedUnitSourcesSet) {
188
        this.derivedUnitSourcesSet = derivedUnitSourcesSet;
189
    }
190

    
191
    public boolean isDescriptionGroupSet() {
192
        return descriptionGroupSet;
193
    }
194

    
195
    public void setDescriptionGroupSet(boolean descriptionGroupSet) {
196
        this.descriptionGroupSet = descriptionGroupSet;
197
    }
198

    
199
    public TaxonDescription getDescriptionGroup() {
200
        return descriptionGroup;
201
    }
202

    
203
    public void setDescriptionGroup(TaxonDescription descriptionGroup) {
204
        this.descriptionGroup = descriptionGroup;
205
    }
206

    
207
    public void setPrefix(String prefix) {
208
        this.prefix = prefix;
209
    }
210

    
211
    public String getPrefix() {
212
        return prefix;
213
    }
214

    
215
    public Abcd206ImportReport getReport(){
216
        return report;
217
    }
218

    
219
    @Override
220
    public byte[] getReportAsByteArray() {
221
        ByteArrayOutputStream importStream = new ByteArrayOutputStream();
222
        report.printReport(new PrintStream(importStream));
223
        return importStream.toByteArray();
224
    }
225

    
226
    public void reset() {
227
        getDataHolder().reset();
228
        derivedUnitBase = null;
229
    }
230
}
(5-5/13)