Project

General

Profile

« Previous | Next » 

Revision 43b37ce4

Added by Andreas Müller over 12 years ago

latest markup development

View differences:

cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/markup/MarkupImportBase.java
9 9

  
10 10
package eu.etaxonomy.cdm.io.markup;
11 11

  
12
import java.util.Collection;
12 13
import java.util.HashMap;
13 14
import java.util.Iterator;
14 15
import java.util.Map;
......
55 56
	private Stack<QName> handledElements = new Stack<QName>();
56 57

  
57 58

  
59
	protected <T extends CdmBase> void  save(Collection<T> collection, MarkupImportState state) {
60
		if (state.isCheck() || collection.isEmpty()){
61
			return;
62
		}
63
		T example = collection.iterator().next();
64
		if (example.isInstanceOf(TaxonBase.class)){
65
			Collection<TaxonBase> typedCollection = (Collection<TaxonBase>)collection;
66
			getTaxonService().saveOrUpdate(typedCollection);
67
		}else if (example.isInstanceOf(Classification.class)){
68
			Collection<Classification> typedCollection = (Collection<Classification>)collection;
69
			getClassificationService().saveOrUpdate(typedCollection);
70
		}else if (example.isInstanceOf(PolytomousKey.class)){
71
			Collection<PolytomousKey> typedCollection = (Collection<PolytomousKey>)collection;
72
			getPolytomousKeyService().saveOrUpdate(typedCollection);
73
		}else if (example.isInstanceOf(DefinedTermBase.class)){
74
			Collection<DefinedTermBase> typedCollection = (Collection<DefinedTermBase>)collection;
75
			getTermService().saveOrUpdate(typedCollection);
76
		}
77
		
78
	}
79
	
58 80
	protected void save(CdmBase cdmBase, MarkupImportState state) {
59 81
		if (state.isCheck()){
60 82
			return;
61 83
		}
62 84
		if (cdmBase.isInstanceOf(TaxonBase.class)){
63
			TaxonBase taxonBase = CdmBase.deproxy(cdmBase, TaxonBase.class);
85
			TaxonBase<?> taxonBase = CdmBase.deproxy(cdmBase, TaxonBase.class);
64 86
			getTaxonService().saveOrUpdate(taxonBase);
65 87
		}else if (cdmBase.isInstanceOf(Classification.class)){
66 88
			Classification classification = CdmBase.deproxy(cdmBase, Classification.class);
......
69 91
			PolytomousKey key = CdmBase.deproxy(cdmBase, PolytomousKey.class);
70 92
			getPolytomousKeyService().saveOrUpdate(key);
71 93
		}else if (cdmBase.isInstanceOf(DefinedTermBase.class)){
72
			DefinedTermBase term = CdmBase.deproxy(cdmBase, DefinedTermBase.class);
94
			DefinedTermBase<?> term = CdmBase.deproxy(cdmBase, DefinedTermBase.class);
73 95
			getTermService().saveOrUpdate(term);
74 96
		}
75 97
		//logger.warn("Saved " +  cdmBase);

Also available in: Unified diff