/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package edu.harvard.iq.dataverse.engine.command.impl; import edu.harvard.iq.dataverse.Dataset; import edu.harvard.iq.dataverse.DatasetVersion; import edu.harvard.iq.dataverse.engine.command.AbstractCommand; import edu.harvard.iq.dataverse.engine.command.CommandContext; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; import edu.harvard.iq.dataverse.engine.command.RequiredPermissions; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import edu.harvard.iq.dataverse.engine.command.exception.PermissionException; /** * Get the latest version of a dataset a user can view. * @author Naomi */ // No permission needed to view published dvObjects @RequiredPermissions({}) public class GetLatestAccessibleDatasetVersionCommand extends AbstractCommand<DatasetVersion>{ private final Dataset ds; public GetLatestAccessibleDatasetVersionCommand(DataverseRequest aRequest, Dataset anAffectedDataset) { super(aRequest, anAffectedDataset); ds = anAffectedDataset; } @Override public DatasetVersion execute(CommandContext ctxt) throws CommandException { DatasetVersion d = null; try { d = ctxt.engine().submit(new GetDraftDatasetVersionCommand(getRequest(), ds)); } catch(PermissionException ex) {} if (d == null || d.getId() == null) { d = ctxt.engine().submit(new GetLatestPublishedDatasetVersionCommand(getRequest(),ds)); } return d; } }