Revision fdf9eec2
Added by Andreas Müller almost 10 years ago
cdmlib-services/src/test/java/eu/etaxonomy/cdm/scripts/FixMultipleTextDataInImageGalleries.java | ||
---|---|---|
25 | 25 |
import eu.etaxonomy.cdm.database.DatabaseTypeEnum; |
26 | 26 |
import eu.etaxonomy.cdm.database.ICdmDataSource; |
27 | 27 |
import eu.etaxonomy.cdm.model.common.init.TermNotFoundException; |
28 |
import eu.etaxonomy.cdm.model.description.DescriptionBase; |
|
29 | 28 |
import eu.etaxonomy.cdm.model.description.DescriptionElementBase; |
30 | 29 |
import eu.etaxonomy.cdm.model.description.Feature; |
31 | 30 |
import eu.etaxonomy.cdm.model.description.TaxonDescription; |
... | ... | |
83 | 82 |
IDescriptionService service = applicationController.getDescriptionService(); |
84 | 83 |
|
85 | 84 |
// get all taxon descriptions |
86 |
List<DescriptionBase> result = service.list(TaxonDescription.class, null, null, null, null);
|
|
85 |
List<TaxonDescription> result = service.list(TaxonDescription.class, null, null, null, null);
|
|
87 | 86 |
|
88 | 87 |
int countTaxonDescriptions = 0; |
89 | 88 |
|
90 |
for (DescriptionBase description : result){
|
|
89 |
for (TaxonDescription description : result){
|
|
91 | 90 |
// filter image galleries with more than one element |
92 | 91 |
if(description.isImageGallery() && description.getElements().size() > 1){ |
93 | 92 |
countTaxonDescriptions++; |
94 | 93 |
|
95 | 94 |
logger.warn("Found image gallery with mulitple TextData: " + description.getElements().size()); |
96 |
TaxonDescription taxonDescription = (TaxonDescription) description; |
|
97 | 95 |
|
98 | 96 |
TextData newDescriptionElement = TextData.NewInstance(Feature.IMAGE()); |
99 | 97 |
|
100 | 98 |
Set<DescriptionElementBase> elementsToRemove = new HashSet<DescriptionElementBase>(); |
101 | 99 |
|
102 | 100 |
// consolidate media from all elements into a new element |
103 |
for(DescriptionElementBase element : taxonDescription.getElements()){
|
|
101 |
for(DescriptionElementBase element : description.getElements()){
|
|
104 | 102 |
List<Media> medias = element.getMedia(); |
105 | 103 |
|
106 | 104 |
for(Media media : medias){ |
... | ... | |
112 | 110 |
|
113 | 111 |
// remove old elements |
114 | 112 |
for(DescriptionElementBase element : elementsToRemove){ |
115 |
taxonDescription.removeElement(element);
|
|
113 |
description.removeElement(element);
|
|
116 | 114 |
} |
117 | 115 |
|
118 | 116 |
// add the new element |
119 |
taxonDescription.addElement(newDescriptionElement);
|
|
117 |
description.addElement(newDescriptionElement);
|
|
120 | 118 |
|
121 | 119 |
} |
122 | 120 |
} |
Also available in: Unified diff
better use of generics in service layer and persistence list methods