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

IQSS / dataverse / #22002

01 Apr 2024 07:56PM CUT coverage: 20.716% (+0.5%) from 20.173%
#22002

push

github

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

Merge 6.2 into master

704 of 2679 new or added lines in 152 files covered. (26.28%)

81 existing lines in 49 files now uncovered.

17160 of 82836 relevant lines covered (20.72%)

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

3
import edu.harvard.iq.dataverse.DataFile;
4
import edu.harvard.iq.dataverse.Dataset;
5
import edu.harvard.iq.dataverse.authorization.Permission;
6
import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
7
import edu.harvard.iq.dataverse.engine.command.AbstractVoidCommand;
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
import edu.harvard.iq.dataverse.engine.command.exception.PermissionException;
13
import edu.harvard.iq.dataverse.pidproviders.PidProvider;
14
import edu.harvard.iq.dataverse.pidproviders.PidUtil;
15

16
import java.sql.Timestamp;
17
import java.util.Collections;
18
import java.util.Date;
19

20
/**
21
 *
22
 * @author skraffmi
23
 */
24
@RequiredPermissions(Permission.EditDataset)
25
public class UpdateDatasetTargetURLCommand extends AbstractVoidCommand  {
26

27
    private final Dataset target;
28
    
29
    public UpdateDatasetTargetURLCommand( Dataset target, DataverseRequest aRequest) {
30
        super(aRequest, target);
×
31
        this.target = target;
×
32
    }
×
33

34
    @Override
35
    protected void executeImpl(CommandContext ctxt) throws CommandException {
36

37
        if (!(getUser() instanceof AuthenticatedUser) || !getUser().isSuperuser()) {
×
38
            throw new PermissionException("Update Target URL can only be called by superusers.",
×
39
                    this, Collections.singleton(Permission.EditDataset), target);
×
40
        }
NEW
41
        PidProvider pidProvider = PidUtil.getPidProvider(target.getGlobalId().getProviderId());
×
42
        try {
NEW
43
            String doiRetString = pidProvider.modifyIdentifierTargetURL(target);
×
44
            if (doiRetString != null && doiRetString.contains(target.getIdentifier())) {
×
45
                target.setGlobalIdCreateTime(new Timestamp(new Date().getTime()));
×
46
                ctxt.em().merge(target);
×
47
                ctxt.em().flush();
×
48
                for (DataFile df : target.getFiles()) {
×
NEW
49
                    doiRetString = pidProvider.modifyIdentifierTargetURL(df);
×
50
                    if (doiRetString != null && doiRetString.contains(df.getIdentifier())) {
×
51
                        df.setGlobalIdCreateTime(new Timestamp(new Date().getTime()));
×
52
                        ctxt.em().merge(df);
×
53
                        ctxt.em().flush();
×
54
                    }
55
                }               
×
56
            } else {
57
                //do nothing - we'll know it failed because the global id create time won't have been updated.
58
            }
59
        } catch (Exception e) {
×
60
            //do nothing - idem and the problem has been logged
61
        }
×
62
    }
×
63
    
64
}
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