• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IQSS / dataverse / #22693

03 Jul 2024 01:09PM CUT coverage: 20.626% (-0.09%) from 20.716%
#22693

push

github

web-flow
Merge pull request #10664 from IQSS/develop

merge develop into master for 6.3

195 of 1852 new or added lines in 82 files covered. (10.53%)

72 existing lines in 33 files now uncovered.

17335 of 84043 relevant lines covered (20.63%)

0.21 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDataverseInputLevelsCommand.java
1
package edu.harvard.iq.dataverse.engine.command.impl;
2

3
import edu.harvard.iq.dataverse.Dataverse;
4
import edu.harvard.iq.dataverse.DataverseFieldTypeInputLevel;
5
import edu.harvard.iq.dataverse.MetadataBlock;
6
import edu.harvard.iq.dataverse.authorization.Permission;
7
import edu.harvard.iq.dataverse.engine.command.AbstractCommand;
8
import edu.harvard.iq.dataverse.engine.command.CommandContext;
9
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
10
import edu.harvard.iq.dataverse.engine.command.RequiredPermissions;
11
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
12

13
import java.util.ArrayList;
14
import java.util.List;
15

16
@RequiredPermissions(Permission.EditDataverse)
17
public class UpdateDataverseInputLevelsCommand extends AbstractCommand<Dataverse> {
18
    private final Dataverse dataverse;
19
    private final List<DataverseFieldTypeInputLevel> inputLevelList;
20

21
    public UpdateDataverseInputLevelsCommand(Dataverse dataverse, DataverseRequest request, List<DataverseFieldTypeInputLevel> inputLevelList) {
NEW
22
        super(request, dataverse);
×
NEW
23
        this.dataverse = dataverse;
×
NEW
24
        this.inputLevelList = new ArrayList<>(inputLevelList);
×
NEW
25
    }
×
26

27
    @Override
28
    public Dataverse execute(CommandContext ctxt) throws CommandException {
NEW
29
        if (inputLevelList == null || inputLevelList.isEmpty()) {
×
NEW
30
            throw new CommandException("Error while updating dataverse input levels: Input level list cannot be null or empty", this);
×
31
        }
NEW
32
        addInputLevelMetadataBlocks();
×
NEW
33
        dataverse.setMetadataBlockRoot(true);
×
NEW
34
        return ctxt.engine().submit(new UpdateDataverseCommand(dataverse, null, null, getRequest(), inputLevelList));
×
35
    }
36

37
    private void addInputLevelMetadataBlocks() {
NEW
38
        List<MetadataBlock> dataverseMetadataBlocks = dataverse.getMetadataBlocks();
×
NEW
39
        for (DataverseFieldTypeInputLevel inputLevel : inputLevelList) {
×
NEW
40
            MetadataBlock inputLevelMetadataBlock = inputLevel.getDatasetFieldType().getMetadataBlock();
×
NEW
41
            if (!dataverseHasMetadataBlock(dataverseMetadataBlocks, inputLevelMetadataBlock)) {
×
NEW
42
                dataverseMetadataBlocks.add(inputLevelMetadataBlock);
×
43
            }
NEW
44
        }
×
NEW
45
        dataverse.setMetadataBlocks(dataverseMetadataBlocks);
×
NEW
46
    }
×
47

48
    private boolean dataverseHasMetadataBlock(List<MetadataBlock> dataverseMetadataBlocks, MetadataBlock metadataBlock) {
NEW
49
        return dataverseMetadataBlocks.stream().anyMatch(block -> block.getId().equals(metadataBlock.getId()));
×
50
    }
51
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc