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

IQSS / dataverse / #23660

05 Nov 2024 05:11PM CUT coverage: 21.206% (-0.02%) from 21.224%
#23660

Pull #11001

github

GPortas
Changed: using JPA criteria instead of code looping for DatasetType query
Pull Request #11001: allow links between dataset types and metadata blocks

1 of 99 new or added lines in 7 files covered. (1.01%)

3 existing lines in 3 files now uncovered.

18316 of 86371 relevant lines covered (21.21%)

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/ListMetadataBlocksCommand.java
1
package edu.harvard.iq.dataverse.engine.command.impl;
2

3
import edu.harvard.iq.dataverse.Dataverse;
4
import edu.harvard.iq.dataverse.MetadataBlock;
5
import edu.harvard.iq.dataverse.authorization.Permission;
6
import edu.harvard.iq.dataverse.dataset.DatasetType;
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.exception.CommandException;
11
import java.util.ArrayList;
12

13
import java.util.Collections;
14
import java.util.List;
15
import java.util.Map;
16
import java.util.Set;
17
import java.util.stream.Stream;
18

19
/**
20
 * Lists the metadata blocks of a {@link Dataverse}.
21
 *
22
 * @author michael
23
 */
24
// no annotations here, since permissions are dynamically decided
25
public class ListMetadataBlocksCommand extends AbstractCommand<List<MetadataBlock>> {
26

27
    private final Dataverse dataverse;
28
    private final boolean onlyDisplayedOnCreate;
29
    private final DatasetType datasetType;
30

31
    public ListMetadataBlocksCommand(DataverseRequest request, Dataverse dataverse, boolean onlyDisplayedOnCreate, DatasetType datasetType) {
32
        super(request, dataverse);
×
33
        this.dataverse = dataverse;
×
34
        this.onlyDisplayedOnCreate = onlyDisplayedOnCreate;
×
NEW
35
        this.datasetType = datasetType;
×
UNCOV
36
    }
×
37

38
    @Override
39
    public List<MetadataBlock> execute(CommandContext ctxt) throws CommandException {
40
        if (onlyDisplayedOnCreate) {
×
41
            return listMetadataBlocksDisplayedOnCreate(ctxt, dataverse);
×
42
        }
NEW
43
        List<MetadataBlock> orig = dataverse.getMetadataBlocks();
×
NEW
44
        List<MetadataBlock> extraFromDatasetTypes = new ArrayList<>();
×
NEW
45
        if (datasetType != null) {
×
NEW
46
            extraFromDatasetTypes = datasetType.getMetadataBlocks();
×
47
        }
NEW
48
        return Stream.concat(orig.stream(), extraFromDatasetTypes.stream()).toList();
×
49
    }
50

51
    private List<MetadataBlock> listMetadataBlocksDisplayedOnCreate(CommandContext ctxt, Dataverse dataverse) {
52
        if (dataverse.isMetadataBlockRoot() || dataverse.getOwner() == null) {
×
NEW
53
            List<MetadataBlock> orig = ctxt.metadataBlocks().listMetadataBlocksDisplayedOnCreate(dataverse);
×
NEW
54
            List<MetadataBlock> extraFromDatasetTypes = new ArrayList<>();
×
NEW
55
            if (datasetType != null) {
×
NEW
56
                extraFromDatasetTypes = datasetType.getMetadataBlocks();
×
57
            }
NEW
58
            return Stream.concat(orig.stream(), extraFromDatasetTypes.stream()).toList();
×
59
        }
60
        return listMetadataBlocksDisplayedOnCreate(ctxt, dataverse.getOwner());
×
61
    }
62

63
    @Override
64
    public Map<String, Set<Permission>> getRequiredPermissions() {
65
        return Collections.singletonMap("",
×
66
                dataverse.isReleased() ? Collections.<Permission>emptySet()
×
67
                        : Collections.singleton(Permission.ViewUnpublishedDataverse));
×
68
    }
69
}
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