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

CeON / dataverse / 1363

13 May 2024 08:49AM UTC coverage: 25.179% (-0.004%) from 25.183%
1363

push

jenkins

web-flow
Closes #2468: Clean-up empty working directories during clear step (#2471)

1 of 15 new or added lines in 2 files covered. (6.67%)

165 existing lines in 5 files now uncovered.

17523 of 69594 relevant lines covered (25.18%)

0.25 hits per line

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

0.0
/dataverse-webapp/src/main/java/edu/harvard/iq/dataverse/CreateDatasetDialog.java
1
package edu.harvard.iq.dataverse;
2

3
import edu.harvard.iq.dataverse.persistence.dataverse.Dataverse;
4
import edu.harvard.iq.dataverse.search.dataverselookup.DataverseLookupService;
5
import edu.harvard.iq.dataverse.search.dataverselookup.LookupData;
6
import edu.harvard.iq.dataverse.search.dataversestree.NodeData;
7
import edu.harvard.iq.dataverse.search.dataversestree.NodesInfo;
8
import edu.harvard.iq.dataverse.search.dataversestree.SolrTreeService;
9
import edu.harvard.iq.dataverse.search.dataversestree.TreeNodeBrowser;
10
import edu.harvard.iq.dataverse.util.SystemConfig;
11
import org.omnifaces.cdi.ViewScoped;
12
import org.primefaces.event.NodeExpandEvent;
13
import org.primefaces.model.TreeNode;
14

15
import javax.inject.Inject;
16
import javax.inject.Named;
17
import java.io.Serializable;
18
import java.util.Collections;
19
import java.util.List;
20
import java.util.Map;
21
import java.util.Optional;
22
import java.util.stream.Collectors;
23

24
@ViewScoped
25
@Named("CreateDatasetDialog")
26
public class CreateDatasetDialog implements Serializable {
27
    private SolrTreeService solrTreeService;
28
    private DataverseRequestServiceBean dataverseRequestService;
29
    private DataverseLookupService dataverseLookupService;
30
    private DataverseDao dataverseDao;
31

UNCOV
32
    private boolean initialized = false;
×
33

UNCOV
34
    private NodesInfo nodesInfo = new NodesInfo(Collections.emptyMap(), Collections.emptySet());
×
35
    private TreeNode selectedNode;
36

37
    private String permissionFilterQuery;
38
    private String treeFilter;
39
    private String prevTreeFilter;
40
    private TreeNodeBrowser treeNodeBrowser;
41
    private DataverseSession session;
42
    private SystemConfig systemConfig;
43

44
    // -------------------- CONSTRUCTORS --------------------
45

UNCOV
46
    public CreateDatasetDialog() { }
×
47

48
    @Inject
49
    public CreateDatasetDialog(SolrTreeService solrTreeService, DataverseRequestServiceBean dataverseRequestService,
50
                               DataverseLookupService dataverseLookupService, DataverseDao dataverseDao,
51
                               DataverseSession session, SystemConfig systemConfig) {
×
52
        this.solrTreeService = solrTreeService;
×
UNCOV
53
        this.dataverseRequestService = dataverseRequestService;
×
UNCOV
54
        this.dataverseLookupService = dataverseLookupService;
×
UNCOV
55
        this.dataverseDao = dataverseDao;
×
UNCOV
56
        this.session = session;
×
57
        this.systemConfig = systemConfig;
×
UNCOV
58
    }
×
59

60
    // -------------------- GETTERS --------------------
61

62
    public TreeNode getRootNode() {
UNCOV
63
        return treeNodeBrowser != null ? treeNodeBrowser.getRootNode() : null;
×
64
    }
65

66
    public TreeNode getSelectedNode() {
UNCOV
67
        return selectedNode;
×
68
    }
69

70
    public String getTreeFilter() {
71
        return treeFilter;
×
72
    }
73

74
    // -------------------- LOGIC --------------------
75

76
    public void init() {
77
        if (initialized) {
×
78
            return;
×
79
        }
80
        permissionFilterQuery = dataverseLookupService.buildFilterQuery(dataverseRequestService.getDataverseRequest());
×
81

UNCOV
82
        Dataverse rootDataverse = dataverseDao.findRootDataverse();
×
83
        nodesInfo = solrTreeService.fetchNodesInfo(dataverseRequestService.getDataverseRequest());
×
84
        treeNodeBrowser = new TreeNodeBrowser(rootDataverse, nodesInfo, this::loadParentDataverseId, this::fetchChildren);
×
85
        initialized = true;
×
UNCOV
86
    }
×
87

88
    public void onNodeExpand(NodeExpandEvent event) {
89
        TreeNode selectedNode = event.getTreeNode();
×
UNCOV
90
        treeNodeBrowser.fetchChildNodes(selectedNode);
×
UNCOV
91
    }
×
92

93
    public void executeTreeFilter() {
94
        if (prevTreeFilter != null && prevTreeFilter.equals(treeFilter)) {
×
95
            return;
×
96
        }
97

98
        treeNodeBrowser.resetRoot();
×
99

100
        if (treeFilter == null || treeFilter.length() < 3) {
×
UNCOV
101
            return;
×
102
        }
103

104
        List<LookupData> results = dataverseLookupService.fetchLookupDataByNameAndExtraDescription(treeFilter, permissionFilterQuery);
×
105
        if (results.isEmpty()) {
×
UNCOV
106
            return;
×
107
        }
108

UNCOV
109
        Map<Long, Long> parentIdsCache = treeNodeBrowser.expandTreeTo(results.stream()
×
UNCOV
110
                .collect(Collectors.toMap(LookupData::getId, LookupData::getParentId)));
×
111
        treeNodeBrowser.trimTree(parentIdsCache.keySet());
×
112

UNCOV
113
        prevTreeFilter = treeFilter;
×
UNCOV
114
    }
×
115

116
    public String createDataset() {
UNCOV
117
        return "/createDataset.xhtml?ownerId=" + ((NodeData) selectedNode.getData()).getId()
×
118
                + "&faces-redirect=true";
119
    }
120

121
    public String getSelectDataverseInfo() {
UNCOV
122
        return systemConfig.getSelectDataverseInfo(session.getLocale());
×
123
    }
124

125
    // -------------------- PRIVATE --------------------
126

127
    private Optional<Long> loadParentDataverseId(Long id) {
UNCOV
128
        return Optional.ofNullable(dataverseDao.find(id))
×
UNCOV
129
                .map(Dataverse::getOwner)
×
130
                .map(Dataverse::getId);
×
131
    }
132

133
    private List<NodeData> fetchChildren(Long id) {
134
        return solrTreeService.fetchNodes(id, nodesInfo);
×
135
    }
136

137
    // -------------------- SETTERS --------------------
138

139
    public void setSelectedNode(TreeNode selectedNode) {
UNCOV
140
        this.selectedNode = selectedNode;
×
UNCOV
141
    }
×
142

143
    public void setTreeFilter(String treeFilter) {
UNCOV
144
        this.treeFilter = treeFilter;
×
UNCOV
145
    }
×
146
}
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

© 2026 Coveralls, Inc