Project

General

Profile

« Previous | Next » 

Revision e9c37045

Added by Patrick Plitzner almost 5 years ago

ref #7589 Save matrix rows in one service call

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixPart.java
15 15
import java.util.List;
16 16
import java.util.Map;
17 17
import java.util.UUID;
18
import java.util.stream.Collectors;
18 19

  
19 20
import javax.annotation.PostConstruct;
20 21
import javax.annotation.PreDestroy;
......
40 41
import eu.etaxonomy.cdm.api.service.IDescriptionService;
41 42
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
42 43
import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
44
import eu.etaxonomy.cdm.model.description.DescriptionBase;
43 45
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
44 46
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
45 47
import eu.etaxonomy.cdm.model.term.TermType;
......
170 172
    @Override
171 173
    public void save(IProgressMonitor monitor) {
172 174
        //save descriptions
173
        matrix.getDescriptions().stream()
175
        List<DescriptionBase> descriptions = matrix.getDescriptions().stream()
174 176
        .filter(o->o instanceof RowWrapperDTO)
175
        .forEach(wrapper->save((RowWrapperDTO)wrapper));
177
        .map(o->((RowWrapperDTO)o).getDescription())
178
        .collect(Collectors.toList());
179
        CdmStore.getService(IDescriptionService.class).merge(descriptions);
176 180

  
177 181
        //save data set
178 182
        CdmStore.getService(IDescriptiveDataSetService.class).merge(descriptiveDataSet, true);
......
181 185
        dirty.setDirty(false);
182 186
    }
183 187

  
184
    private void save(RowWrapperDTO wrapper){
185
        CdmStore.getService(IDescriptionService.class).merge(wrapper.getDescription());
186
    }
187

  
188 188
    @Override
189 189
    public boolean isDirty() {
190 190
        return dirty.isDirty();

Also available in: Unified diff