/*
* 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.authorization.Permission;
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 java.util.LinkedList;
import java.util.List;
/**
*
* @author Naomi
*/
// No permission needed to view published dvObjects
@RequiredPermissions({})
public class ListVersionsCommand extends AbstractCommand<List<DatasetVersion>>{
private final Dataset ds;
public ListVersionsCommand(DataverseRequest aRequest, Dataset aDataset) {
super(aRequest, aDataset);
ds = aDataset;
}
@Override
public List<DatasetVersion> execute(CommandContext ctxt) throws CommandException {
List<DatasetVersion> outputList = new LinkedList<>();
for ( DatasetVersion dsv : ds.getVersions() ) {
if (dsv.isReleased() || ctxt.permissions().request( getRequest() ).on(ds).has(Permission.EditDataset)) {
outputList.add(dsv);
}
}
return outputList;
}
}