1313import java .util .List ;
1414
1515@ RequiredPermissions (Permission .EditDataset )
16- public class UpdateDatasetLicenseCommand extends AbstractVoidCommand {
17- private final Dataset dataset ;
16+ public class UpdateDatasetLicenseCommand extends AbstractDatasetCommand <Dataset > {
1817 private License license = null ;
1918 private TermsOfUseAndAccess customTermsOfUseAndAccess = null ;
2019
2120 public UpdateDatasetLicenseCommand (DataverseRequest aRequest , Dataset dataset , License license ) {
2221 super (aRequest , dataset );
23- this .dataset = dataset ;
2422 this .license = license ;
2523 }
2624
2725 public UpdateDatasetLicenseCommand (DataverseRequest aRequest , Dataset dataset , TermsOfUseAndAccess customTermsOfUseAndAccess ) {
2826 super (aRequest , dataset );
29- this .dataset = dataset ;
3027 this .customTermsOfUseAndAccess = customTermsOfUseAndAccess ;
3128 }
3229
3330
3431 @ Override
35- protected void executeImpl (CommandContext ctxt ) throws CommandException {
36- DatasetVersion datasetVersion = dataset .getOrCreateEditVersion ();
32+ public Dataset execute (CommandContext ctxt ) throws CommandException {
33+ DatasetVersion datasetVersion = getDataset () .getOrCreateEditVersion ();
3734 datasetVersion .setVersionState (DatasetVersion .VersionState .DRAFT );
35+ Dataset savedDataset = null ;
3836
3937 if (license != null ) {
4038 if (!license .isActive ()) {
@@ -43,7 +41,7 @@ protected void executeImpl(CommandContext ctxt) throws CommandException {
4341 TermsOfUseAndAccess termsOfUseAndAccess = datasetVersion .getTermsOfUseAndAccess ();
4442 termsOfUseAndAccess .setLicense (license );
4543
46- ctxt .engine ().submit (new UpdateDatasetVersionCommand (this . dataset , getRequest ()));
44+ savedDataset = ctxt .engine ().submit (new UpdateDatasetVersionCommand (getDataset () , getRequest ()));
4745 } else if (customTermsOfUseAndAccess != null ) {
4846 if (customTermsOfUseAndAccess .getTermsOfUse () == null || customTermsOfUseAndAccess .getTermsOfUse ().isBlank ()) {
4947 throw new InvalidCommandArgumentsException (BundleUtil .getStringFromBundle ("updateDatasetLicenseCommand.errors.customTermsOfUseNotProvided" ), this );
@@ -52,8 +50,9 @@ protected void executeImpl(CommandContext ctxt) throws CommandException {
5250 applyCustomTerms (termsToUpdate , customTermsOfUseAndAccess );
5351 termsToUpdate .setLicense (null );
5452 datasetVersion .setTermsOfUseAndAccess (termsToUpdate );
55- ctxt .engine ().submit (new UpdateDatasetVersionCommand (this . dataset , getRequest ()));
53+ savedDataset = ctxt .engine ().submit (new UpdateDatasetVersionCommand (getDataset () , getRequest ()));
5654 }
55+ return savedDataset ;
5756 }
5857
5958 /**
0 commit comments