Project

General

Profile

« Previous | Next » 

Revision 7115f486

Added by Andreas Müller almost 9 years ago

Cleanup BfnXmlImport

View differences:

app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/BfnXmlImportMetaData.java
1 1
/**
2 2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy 
3
* European Distributed Institute of Taxonomy
4 4
* http://www.e-taxonomy.eu
5
* 
5
*
6 6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7 7
* See LICENSE.TXT at the top of this package for the full license terms.
8 8
*/
9 9

  
10 10
package eu.etaxonomy.cdm.io.redlist.bfnXml;
11 11

  
12
import java.util.ArrayList;
13
import java.util.Arrays;
14 12
import java.util.List;
15
import java.util.UUID;
16 13

  
17
import javax.management.ObjectInstance;
18

  
19
import org.apache.commons.lang.StringUtils;
20 14
import org.apache.log4j.Logger;
21
import org.hibernate.id.UUIDGenerator;
22 15
import org.jdom.Element;
23 16
import org.jdom.Namespace;
24 17
import org.springframework.stereotype.Component;
25 18
import org.springframework.transaction.TransactionStatus;
26 19

  
27
import eu.etaxonomy.cdm.api.service.IClassificationService;
28
import eu.etaxonomy.cdm.api.service.IDescriptionService;
29
import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
30
import eu.etaxonomy.cdm.api.service.ITaxonService;
31
import eu.etaxonomy.cdm.api.service.ITermService;
32
import eu.etaxonomy.cdm.api.service.IVocabularyService;
33 20
import eu.etaxonomy.cdm.common.ResultWrapper;
34
import eu.etaxonomy.cdm.common.XmlHelp;
35 21
import eu.etaxonomy.cdm.io.common.ICdmIO;
36
import eu.etaxonomy.cdm.io.common.ImportHelper;
37
import eu.etaxonomy.cdm.io.common.MapWrapper;
38
import eu.etaxonomy.cdm.io.common.Source;
39
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
40
import eu.etaxonomy.cdm.model.common.Language;
41
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
42
import eu.etaxonomy.cdm.model.common.TermType;
43
import eu.etaxonomy.cdm.model.common.TermVocabulary;
44 22
import eu.etaxonomy.cdm.model.common.TimePeriod;
45
import eu.etaxonomy.cdm.model.common.VocabularyEnum;
46
import eu.etaxonomy.cdm.model.description.CategoricalData;
47
import eu.etaxonomy.cdm.model.description.DescriptionBase;
48
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
49
import eu.etaxonomy.cdm.model.description.Feature;
50
import eu.etaxonomy.cdm.model.description.FeatureNode;
51
import eu.etaxonomy.cdm.model.description.FeatureTree;
52
import eu.etaxonomy.cdm.model.description.State;
53
import eu.etaxonomy.cdm.model.description.StateData;
54
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
55
import eu.etaxonomy.cdm.model.name.NonViralName;
56
import eu.etaxonomy.cdm.model.name.Rank;
57
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
58 23
import eu.etaxonomy.cdm.model.reference.Reference;
59 24
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
60
import eu.etaxonomy.cdm.model.taxon.Classification;
61
import eu.etaxonomy.cdm.model.taxon.Synonym;
62
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
63
import eu.etaxonomy.cdm.model.taxon.Taxon;
64
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
65
import eu.etaxonomy.cdm.persistence.dao.description.IFeatureDao;
66
import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException;
67
import eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl;
68
import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
69 25
import eu.etaxonomy.cdm.strategy.parser.TimePeriodParser;
70 26
/**
71
 * 
27
 *
72 28
 * @author a.oppermann
73 29
 * @date 04.07.2013
74 30
 *
......
94 50
	@Override
95 51
	public void doInvoke(BfnXmlImportState state){
96 52
		logger.warn("start import MetaData...");
97
		
98
		
53

  
54

  
99 55
		ResultWrapper<Boolean> success = ResultWrapper.NewInstance(true);
100 56

  
101 57
		BfnXmlImportConfigurator config = state.getConfig();
......
106 62
			sourceFileName = elDataSet.getAttributeValue("source");
107 63
			debVersion = elDataSet.getAttributeValue("debversion");
108 64
			timeStamp = elDataSet.getAttributeValue("timestamp");
109
			
110
			Reference sourceReference = ReferenceFactory.newGeneric();
65

  
66
			Reference<?> sourceReference = ReferenceFactory.newGeneric();
111 67
			sourceReference.setTitle(sourceFileName);
112 68
			TimePeriod parsedTimePeriod = TimePeriodParser.parseString(timeStamp);
113 69
			sourceReference.setDatePublished(parsedTimePeriod);
114 70
			state.setCompleteSourceRef(sourceReference);
115 71
		}
116
		
117
		List contentXML = elDataSet.getContent();
72

  
73
		List<?> contentXML = elDataSet.getContent();
118 74
		Element currentElement = null;
119 75
		for(Object object:contentXML){
120
		
121
			
76

  
77

  
122 78
			if(object instanceof Element){
123 79
				currentElement = (Element)object;
124 80

  
125 81
				if(currentElement.getName().equalsIgnoreCase("METADATEN")){
126
					
82

  
127 83
					TransactionStatus tx = startTransaction();
128 84

  
129 85
					String bfnElementName = "METADATEN";
130
					List<Element> elMetaDataList  = (List<Element>)currentElement.getChildren();
86
					@SuppressWarnings("unchecked")
87
                    List<Element> elMetaDataList  = currentElement.getChildren();
131 88
					//for each taxonName
132 89
					for (Element elMetaData : elMetaDataList){
133 90
						if( elMetaData.getAttributeValue("standardname").equalsIgnoreCase("KurzLit_A")){
134
							List<Element> children = (List<Element>)elMetaData.getChildren();
91
							@SuppressWarnings("unchecked")
92
                            List<Element> children = elMetaData.getChildren();
135 93
							String kurzlitA = children.get(0).getTextNormalize();
136
							Reference sourceReference = ReferenceFactory.newGeneric();
94
							Reference<?> sourceReference = ReferenceFactory.newGeneric();
137 95
							sourceReference.setTitle(kurzlitA);
138 96
							state.setFirstListSecRef(sourceReference);
139 97

  
140 98
						}
141 99
						else if( elMetaData.getAttributeValue("standardname").equalsIgnoreCase("Klassifikation_A")){
142
							List<Element> children = (List<Element>)elMetaData.getChildren();
100
							@SuppressWarnings("unchecked")
101
                            List<Element> children = elMetaData.getChildren();
143 102
							String klassifikation_A = children.get(0).getTextNormalize();
144 103
							state.setFirstClassificationName(klassifikation_A);
145 104

  
146
						}						
105
						}
147 106
						else if( elMetaData.getAttributeValue("standardname").equalsIgnoreCase("KurzLit_B")){
148
							List<Element> children = (List<Element>)elMetaData.getChildren();
107
							@SuppressWarnings("unchecked")
108
                            List<Element> children = elMetaData.getChildren();
149 109
							String kurzlitB = children.get(0).getTextNormalize();
150
							Reference sourceReference = ReferenceFactory.newGeneric();
110
							Reference<?> sourceReference = ReferenceFactory.newGeneric();
151 111
							sourceReference.setTitle(kurzlitB);
152 112
							state.setSecondListSecRef(sourceReference);
153 113
						}
154 114
						else if( elMetaData.getAttributeValue("standardname").equalsIgnoreCase("Klassifikation_B")){
155
							List<Element> children = (List<Element>)elMetaData.getChildren();
115
							@SuppressWarnings("unchecked")
116
                            List<Element> children = elMetaData.getChildren();
156 117
							String klassifikation_B = children.get(0).getTextNormalize();
157 118
							state.setSecondClassificationName(klassifikation_B);
158 119

  
159 120
						}
160 121

  
161 122
					}
162
					
123

  
163 124
					logger.warn("end import MetaData ...");
164 125
					commitTransaction(tx);
165
					
166
					
167
					
168
					
126

  
127

  
169 128
					if (!success.getValue()){
170 129
						state.setUnsuccessfull();
171 130
					}
172 131
					//FIXME: Only take the first RoteListeData Features
173
					
174
					
132

  
133

  
175 134
					return;
176 135
				}
177 136
			}
......
182 141

  
183 142
	@Override
184 143
	protected boolean isIgnore(BfnXmlImportState state) {
185
		return ! state.getConfig().isDoTaxonNames();
144
		return ! state.getConfig().isDoMetaData();
186 145
	}
187 146

  
188 147
}

Also available in: Unified diff